c# - 即使存在 try 块,从 SQL 表中获取数据也会引发空异常
问题描述
在我的 WinForms 应用程序中,我有以下代码,它在单击按钮时从 SQL Server 表中获取批号。
private void getlotnumbers()
{
try
{
SqlConnection con = new SqlConnection(cs);
SqlCommand cmd;
con.Open();
string s = "select LotNumber from Lot_Numbers where CoilNumber = @p1";
cmd = new SqlCommand(s, con);
cmd.Parameters.AddWithValue("@p1", coilNoTextBox.Text);
cmd.CommandType = CommandType.Text;
int i = cmd.ExecuteNonQuery();
lotNoTextBox.Text = cmd.ExecuteScalar().ToString();
con.Close();
}
catch(Exception ex)
{
MessageBox.Show("Lot Number Not Found:" + ex.Message.ToString(), "Lot Number",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
该函数直到昨天都运行良好,但从今天开始,即使存在 try 块,它也会抛出异常并停止应用程序。
System.NullReferenceException:“对象引用未设置为对象的实例。”
我不知道为什么会发生这种情况,但是我添加了另一个名为“formedit”的表单来编辑现有记录,这与“FornewEntry”非常相似,但是预填充了选定的datagridview行的值,也许我搞砸了虽然这样做是第一个应用程序,因为我正在学习 C# 下面是我的解决方案的链接,请帮助我。
解决方案
您string s = "select LotNumber from Lot_Numbers where CoilNumber = @p1";
正在尝试执行此语句
lotNoTextBox.Text = cmd.ExecuteScalar().ToString();
var lotNumber= cmd.ExecuteScalar()==null?"Handle empty case or throw exception with custom message":cmd.ExecuteScalar().ToString();
lotNoTextBox.Text =lotNumber.ToString();
推荐阅读
- python - 即使条件匹配,Python 也无法验证 == 运算符
- react-native - 如何使用参数 react native 分享到社交应用的深层链接?
- react-native - 将本机图像路径反应到 base64
- c++ - 加载 TensorFlow 模型以使用 C++ 操作音频流
- python - 如何在python中将列名从日期更改为月份名称-年份
- java - 无法在 android studio 中将数据上传到 Firebase
- javascript - firebase-ui如何覆盖标题
- python - 一次从两台设备使用 API 访问 Binance
- python-3.x - 如何将 Python 与 PowerDesigner 一起使用?
- html - CSS 在 Mozilla 和 IE 中是否正常工作,但在 Chrome 中工作正常?