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