Tbldeliveryテーブルに既に存在する「refno」をチェックしたい場合「refno」がある場合、「refno」が第1テーブルの主キーであるため「Tbldeliverydetails」に挿入されます。どこで私の状態をチェックしますか?ここで挿入するテーブルの条件を確認する
は、私は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
try { var da = new SqlDataAdapter( "refno = '" + txtdelrefno.Text + "'"、SqlCon)からTblinkdeliveryのrefnoを選択します。 var dt = new DataTable(); da.Fill(dt); if(dt.Rows.Count == 0) {すべてのコード} – Hari
テーブルの行数をカウントします。行がゼロの場合は、「if」内のコードが別の賢明なコードで実行されます。 "else"が実行されます。それはMr.Zoidbergを実行しています – Hari