Wenn ich meine verkettete Einfügung durch Parameter ersetzte, wurde INSERT
nicht mehr in der Datenbank gespeichert.C# speichert keine Daten in SQL Server
Ich benutze:
Int32 rowsAffected = cmd.ExecuteNonQuery();
var totalRecords = (new SqlCommand("SELECT COUNT(*) FROM dbo.EmpInfo", cmd.Connection)).ExecuteNonQuery();
MessageBox.Show("RowsAffected: " + rowsAffected.ToString());
MessageBox.Show("Total Records: " + totalRecords);
aber dann ist der Rückgabewert 1 für RowsAffected
und -1 für totalRecords
.
if (Status == RegistrationStatus.r_OK)
{
String query = "INSERT INTO dbo.EmpInfo(EmpYear, EmpStatus, LName, FName, JobTitle, EmpPay, EmpDoB, EmpSex, EmpAddr, EmpCity, EmpState, EmpZIP, EmpCountry, EmpEAddr, EmpTelNo, EmpMobileNo, EmpDate) VALUES (@EmpYear, @EmpStatus, @LName, @FName, @JobTitle, @EmpPay, @EmpDoB, @EmpSex, @EmpAddr, @EmpCity, @EmpState, @EmpZIP, @EmpCountry, @EmpEAddr, @EmpTelNo, @EmpMobileNo, getdate())";
using (SqlConnection conn = new SqlConnection("Data Source=RB-DESKTOP;Initial Catalog=TimeDB;Persist Security Info=True;User ID=sa;Password=bautista7"))
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
using (SqlCommand cmd = new SqlCommand(query, conn))
{
using (SqlTransaction transaction = conn.BeginTransaction())
{
cmd.Connection = conn;
cmd.Transaction = transaction;
ParameterName = "@EmpYear", Value = EmpYear });
cmd.Parameters.AddWithValue("@EmpYear", EmpYear);
cmd.Parameters.Add(new SqlParameter() { ParameterName = "@EmpStatus", Value = "Active" });
cmd.Parameters.Add(new SqlParameter() { ParameterName = "@LName", Value = regLname_text.Text });
cmd.Parameters.Add(new SqlParameter() { ParameterName = "@FName", Value = regFname_text.Text });
cmd.Parameters.Add(new SqlParameter() { ParameterName = "@JobTitle", Value = "NULL" });
cmd.Parameters.Add(new SqlParameter() { ParameterName = "@EmpPay", Value = PayType_cb.SelectedItem.ToString()});
cmd.Parameters.Add(new SqlParameter() { ParameterName = "@EmpDoB", Value = regDob_dtp.Value.Date });
cmd.Parameters.Add(new SqlParameter() { ParameterName = "@EmpSex", Value = gender });
cmd.Parameters.Add(new SqlParameter() { ParameterName = "@EmpAddr", Value = regAddr_text.Text });
cmd.Parameters.Add(new SqlParameter() { ParameterName = "@EmpCity", Value = regCity_text.Text });
cmd.Parameters.Add(new SqlParameter() { ParameterName = "@EmpState", Value = regState_text.Text });
cmd.Parameters.Add(new SqlParameter() { ParameterName = "@EmpZIP", Value = regZip_text.Text });
cmd.Parameters.Add(new SqlParameter() { ParameterName = "@EmpCountry", Value = regCountry_text.Text });
cmd.Parameters.Add(new SqlParameter() { ParameterName = "@EmpEAddr", Value = regEmail_text.Text });
cmd.Parameters.Add(new SqlParameter() { ParameterName = "@EmpTelNo", Value = regTel_text.Text });
cmd.Parameters.Add(new SqlParameter() { ParameterName = "@EmpMobileNo", Value = regMob_text.Text});
cmd.ExecuteNonQuery();
transaction.Commit();
Sie sollten Ihr Passwort in der Post – Massanu
in 'Int32 rowsAffected = cmd.ExecuteNonQuery() ;, was genau Sie hier ausführen? –
Verwenden Sie ExecuteScalar() '(neuer SqlCommand (" SELECT COUNT (*) VON dbo.EmpInfo ", cmd.Connection)). ExecuteScalar()' –