こんにちは、私はちょうど C# を学んでいて、問題に苦しんでいます。
私の最初の問題はこれです。保存ボタンを押すと、[Transaction and TransactionDetails] 両方のテーブルに Guid として定義された TransID フィールドが含まれている aspx フォームがあります。トランザクション テーブル Guid も主キーです。私の質問は、uniqueidentifier である同じ GUID (TransID) を両方のテーブルに挿入する方法です..同時に (それが私の希望です) 実行する必要があるストアド プロシージャがあり、同じ Guid を必要とします。パラメータ。つまり、両方のテーブルで同じ GUID が必要であり、新しく作成された Guid をストアド プロシージャに渡す必要があります。
これまでのコードコードは次のとおりです。それを実現するために追加または変更する必要があるものを教えてください。
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection sc = new SqlConnection((System.Configuration.ConfigurationManager.ConnectionStrings["NovaConnectionString"].ConnectionString));
sc.Open();
string insertSQL;
insertSQL = "INSERT INTO [Transaction] (";
insertSQL += "TransactionID, FileNumber, TransactionDate, RegistryID, InstrumentID, TransactionTypeID, CompanyID, ";
insertSQL += "InvoiceNo, Unit, Price, DueDiligance, Legal)";
insertSQL += "VALUES (";
insertSQL += "@TransactionID, @FileNumber, @TransactionDate, @RegistryID, @InstrumentID, @TransactionTypeID, @CompanyID, ";
insertSQL += "@InvoiceNo, @Unit, @Price, @DueDiligance, @Legal)";
//string query1 = String.Format(@"Insert Into Transaction (TransactionID, FileNumber, TransactionDate, RegistryID, InstrumentID, TransactionTypeID, CompanyID, InvoiceNo, Unit, Price, DueDiligance, Legal)"
//+ " VALUES (@TransactionID, @FileNumber, @TransactionDate, @RegistryID, @InstrumentID, @TransactionTypeID, @CompanyID, @InvoiceNo, @Unit, @Price, @DueDiligance, @Legal)");
SqlCommand cmd = new SqlCommand(insertSQL, sc);
SqlCommand cmd3 = new SqlCommand("uspProcessPurchasedOffsets", sc);
cmd3.CommandType = CommandType.StoredProcedure;
//Add the parameters.
cmd.Parameters.AddWithValue("@TransactionID", Guid.NewGuid());
cmd.Parameters.AddWithValue("@FileNumber", txtFileNumber.Text);
cmd.Parameters.AddWithValue("@TransactionDate", txtTransactionCreated.Text);
cmd.Parameters.AddWithValue("@RegistryID", ddlRegistry.Text);
cmd.Parameters.AddWithValue("@InstrumentID", ddlInstrument.Text);
cmd.Parameters.AddWithValue("@TransactionTypeID", txtTransactionTypeID.Text);
cmd.Parameters.AddWithValue("@CompanyID", ddlCompany.Text);
cmd.Parameters.AddWithValue("@InvoiceNo", txtInvoiceNo.Text);
cmd.Parameters.AddWithValue("@Unit", txtTotalVolume.Text);
cmd.Parameters.AddWithValue("@Price", txtPrice.Text);
cmd.Parameters.AddWithValue("@DueDiligance", txtDueDiligance.Text);
cmd.Parameters.AddWithValue("@Legal", txtLegal.Text);
//Parameter for stored Proc
cmd3.Parameters.Add("@TransactionID", SqlDbType.UniqueIdentifier);
cmd.ExecuteNonQuery();
string insertSQL2;
insertSQL2 = "INSERT INTO [TransactionDetails] (StartSerialNumber,VintageYear,Units)";
insertSQL2 += "VALUES (@StartSerialNumber, @VintageYear, @Units)";
SqlCommand cmd1 = new SqlCommand(insertSQL2, sc);
//Add the parameters.
cmd1.Parameters.AddWithValue("@StartSerialNumber", txtStartSerial.Text);
cmd1.Parameters.AddWithValue("@VintageYear", txtVintage.Text);
cmd1.Parameters.AddWithValue("@Units", txtVolume.Text);
cmd1.ExecuteNonQuery();
cmd3.ExecuteNonQuery();
}
}