public TransImport()
{
ConnString = ConfigurationManager.ConnectionStrings["Connection"].ConnectionString;
conn_new = new SqlConnection(ConnString);
command_serial_new = conn_new.CreateCommand();
command_serial_new.CommandText = "SELECT 1 FROM YSL00 WHERE SERLNMBR = @slnr";
var p = new SqlParameter("@slnr", SqlDbType.NVarChar, 50);
command_serial_new.Parameters.Add(p);
//Here you will start reading flat file to get serialnumber.
//Here I have shown a simple call using one value 12345 but it will be 1000's of
//lines from flatfile.
if (CheckSerialNumber('12345'))
DisplayMessage("Good serialnumber"); //this function is not copied here.
}
private Boolean CheckSerialNumber(string SerialNumber)
{
command_serial_new.Parameters["@slnr"].Value = SerialNumber;
try
{
var itExists = (Int32)command_serial_new.ExecuteScalar() > 0;
if (itExists)
{
return true;
}
}
catch (Exception ex)
{
LogException(ex, "Error in CheckSerialNumber =>"+ command_serial_new.CommandText.ToString());
}
return false;
}
上面的catch中出现错误。它提到使用SqlParameter和ExecuteScalar获取错误
对象引用不设置到对象的实例
它与具有ExecuteScalar
线失败。
我想我在这里做错了什么,但无法弄清楚到目前为止。
更新1:我修改了这个问题。基本上,我用一个我正面临的问题创建了另一个问题。我也将其标记为已回答。
这是我刚刚发布的新问题。
Getting timeout errors with SqlTransaction on same table
您是否尝试过调试,并检查command_serial_new.ExecuteScalar()的值?您既在一行中进行投射和比较,这也会使问题更加复杂化。 –
@DaveSwersky:我已经更新了我的问题。请检查 – Anirudh