我想檢查Tbldelivery表中已經存在的「refno」,如果「refno」存在,那麼它將插入「Tbldeliverydetails」中,因爲「refno」是第一個表中的主鍵。我在哪裏檢查條件?檢查條件要插入哪個表
以下是我在C#編寫的代碼:
protected void btndlysave_Click(object sender, EventArgs e)
{
SqlConnection SqlCon = new SqlConnection("server=(local);Initial Catalog=TestDB;Integrated Security=SSPI;");
try
{
SqlCon.Open();
SqlCommand cmd = new SqlCommand("insert into Tbldelivery (refno,deliverdate,requestby,projectcode) values
(@refno,@deliverdate,@requestby,@projectcode) WHERE not exists (select refno from Tblinkdelivery where refno = @refno)", SqlCon);
cmd.CommandType = CommandType.Text;
if (need check here)
cmd.Parameters.AddWithValue("@refno", txtdelrefno.Text.Trim());
cmd.Parameters.AddWithValue("@deliverdate", txtdeldate.Text.Trim());
cmd.Parameters.AddWithValue("@requestby", txtdelreq.Text.Trim());
cmd.Parameters.AddWithValue("@projectcode", ddlprojcode.Text.Trim());
}
else
{
SqlCommand cmd2 = new SqlCommand("insert into Tbldeliverdetails (refno,printercode,inkcode,quantity,price,notes) values (@refno,@printercode,@inkcode,@quantity,@price,@notes)", SqlCon);
cmd2.CommandType = CommandType.Text;
cmd2.Parameters.AddWithValue("@refno", txtdelrefno.Text.Trim());
cmd2.Parameters.AddWithValue("@printercode", ddldelprcode.Text.Trim());
cmd2.Parameters.AddWithValue("@inkcode", ddlinkcode.Text.Trim());
cmd2.Parameters.AddWithValue("@quantity", txtdelqty.Text.Trim());
cmd2.Parameters.AddWithValue("@price", txtdelprice.Text.Trim());
cmd2.Parameters.AddWithValue("@notes", txtdelnotes.Text.Trim());
int val1 = cmd.ExecuteNonQuery();
int val2 = cmd2.ExecuteNonQuery();
}
finally
{
SqlCon.Close();
}
}
,這實際上編譯?看起來你註釋了一個if,除非我錯了,否則在C#中沒有try/else/finally塊這樣的事情。 – Zoidberg 2012-02-29 12:02:55
嘗試 var da = new SqlDataAdapter(「select refname from Tblinkdelivery where refno ='」+ txtdelrefno.Text +「'」,SqlCon); var dt = new DataTable(); da.Fill(dt); if(dt.Rows.Count == 0) {All Codes} – Hari 2012-04-29 14:17:33
我計算表中的行數。如果該行爲零,則「if」內的代碼將執行另一個明智的代碼「else」被執行。它運行Mr.Zoidberg – Hari 2012-04-29 14:21:11