我遇到一个问题,如果我通过java.io.File.listFiles()
搜索数据而数据库中的数据不存在 ,则会出现错误
“无法将对象从DBNull强制转换为其他类型。”
我正试图让TextBox
似乎说数据不存在,并且无法弄清楚该怎么做。
我尝试使用MessageBox
语句,其中如果if
等于TextBox
,则出现DBNull
。这MessageBox
DBNull t work and im not too sure why. The error occurs with me trying to **equal** to
TextBox是否表示数据不存在?
. How do i produce a
我的预期结果是为了使消息框出现,表明如果搜索到数据不存在。但如果这样做,数据将显示在消息框中。
答案 0 :(得分:2)
您有 3 个案例可以实施:
>
<
:检查wait
null
:借助1 + 2 + NULL + 3 == NULL
代码:
DBNull.Value
答案 1 :(得分:1)
我将使用decimal.tryparse来查看是否返回了数据
SqlConnection con = new SqlConnection("***COnString**");
con.Open();
SqlCommand comm = new SqlCommand("SELECT SUM (Total_Hours_Day) FROM Sign_In_Out_Table, User_Table WHERE User_Table.FirstName = '" + Search_Username_Alerts_Admin_txtbox.Text + "' AND Sign_In_Out_Table.eb_number = User_Table.eb_number AND Date between GETDATE()-14 and GETDATE()", con);
string TotalHoursFortnight = (comm.ExecuteScalar()).ToString();
con.Close();
decimal sum = 0;
decimal temp;
if(!decimal.TryParse(TotalHoursFortnight, out temp))
{
MessageBox.Show("No Data Exists");
}
else
{
sum += temp;
MessageBox.Show(Search_Username_Alerts_Admin_txtbox.Text + ":" + Environment.NewLine + " Hours Worked = " + TotalHoursFortnight, ("Working Info Admin"), MessageBoxButtons.OK, MessageBoxIcon.Information);
}
答案 2 :(得分:0)
您需要为查询结果检查null
var result = comm.ExecuteScalar();
if(result != null){
decimal TotalHoursFortnight = Convert.ToDecimal(comm.ExecuteScalar());
// move remain code to if block
}
并且if (Search_Username_Alerts_Admin_txtbox.Text == DBNull)
应该更改为
if (Convert.IsDBNull(Search_Username_Alerts_Admin_txtbox.Text){
}