C#:错误:对象引用设置为对象的实例
我正在开发一个会计桌面应用程序,它提供了许多关于用户的特定信息 我遇到麻烦的部分就在这里C#:错误:对象引用设置为对象的实例,c#,object,reference,C#,Object,Reference,我正在开发一个会计桌面应用程序,它提供了许多关于用户的特定信息 我遇到麻烦的部分就在这里 date=comboBoxEdit2.EditValue.ToString()行不应该像我那样被分配为null。但我找不到更好的选项,显然,编译器给我的对象引用未设置为对象的实例。错误。我正在使用并仅找到.EditValue控件来检查数据库中的信息 多谢各位 这是我的完整方法 public void fillCombo2() { using (SqlConnectio
date=comboBoxEdit2.EditValue.ToString()代码>行不应该像我那样被分配为null
。但我找不到更好的选项,显然,编译器给我的对象引用未设置为对象的实例。
错误。我正在使用并仅找到.EditValue控件来检查数据库中的信息
多谢各位
这是我的完整方法
public void fillCombo2()
{
using (SqlConnection con = new SqlConnection("Server=DLL;Database=BSSERVIS;User Id=sa;Password=1;"))
{
con.Open();
string date = ("select DATE from BSSERVIS.dbo.ENUMERATION");
date = comboBoxEdit2.EditValue.ToString();
System.Data.SqlClient.SqlDataReader dr = null;
SqlCommand cmd = new SqlCommand("select distinct(DATE) from BSSERVIS.dbo.ENUMERATION where WAREHOUSE_NR='" + date + "'");
dr = cmd.ExecuteReader();
dr.Read();
while (dr.Read())
{
string date = dr.GetString(0);
comboBoxEdit2.Properties.Items.Add(date);
}
}
}
您应该首先检查以确保comboBoxEdit2.EditValue包含有效的日期值,可能(假设这是C#;您应用的标记不清楚): 如果不是日期,则不要执行查询,或者在没有参数的情况下设置查询 还要注意,如果用户在文本框中输入恶意数据,则代码容易受到SQL注入攻击。上面的方法更好,但您还应该考虑使用SQL参数使其更安全
DateTime.TryParse将尝试将表达式解析为DateTime对象,如果成功,则返回true,否则返回false。如果成功,out参数date将被DateTime对象填充。这可能有助于:-减少问题以找到问题。删除日期变量并对其进行硬编码(暂时)-如果可行,则编辑问题以仅包含相关代码。这是一个日期,我正在尝试从数据库中提取它。是的,这是一个c代码。抱歉,标记选择不正确。我的意思是,您应该使用我引用的代码检查表达式是否返回日期。如果用户没有选择或输入值,因此表达式为空,它将不会解析为日期,并且在您的代码中您可以做出相应的反应。哦,现在我理解了您的建议。
if (DateTime.TryParse(comboBoxEdit2.EditValue, out date))
{
// Your query execution code
}