I am using SQL Server 2012 & VS 2013. I have table schema like this
[dbo].[Accounts] ([AccntName], [AccntCrVal], [AccntDrVal])
I want to build a dynamic sql query depending on condition. User will select the AccoutnName and enter a Balance then choose balance type Credit or Debit. Now I want if user choose Credit values goes to credit column and vice versa. User will only select AccountName which already entered in the accounts table. Currently I am doing this like this
using (SqlConnection conn = new SqlConnection(conStr))
{
insrtcmd = new SqlCommand();
insrtcmd.Connection = conn;
if (comBoxBalType.Text == "Cr")
{
insrtcmd.CommandText = @"INSERT INTO Accoutns(AccntCrVal) VALUES (@bal) Where(AccntName=@acntName)";
insrtcmd.Connection = conn;
insrtcmd.Parameters.AddWithValue("@acntName", acntName);
insrtcmd.Parameters.AddWithValue("@bal", bal);
conn.Open();
insrtcmd.ExecuteNonQuery();
}
else if (comBoxBalType.Text == "Dr")
{
insrtcmd.CommandText = @"INSERT INTO Accoutns(AccntDrVal) VALUES (@AccntDrVal) Where (AccntName=@prmSlctAcntName)";
insrtcmd.Connection = conn;
insrtcmd.Parameters.AddWithValue("@prmSlctAcntName", comBoxSlctAcnt.Text);
insrtcmd.Parameters.AddWithValue("@AccntDrVal", textBoxBal);
conn.Open();
insrtcmd.ExecuteNonQuery();
}
else
{
MessageBox.Show("Please Enter Values and Select the Balance Type [ Dr | Cr ] ", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
But I don't want to do like this. Thanks
INSERTdoesn't have aWHEREclause - if you want to insert - then execute theINSERT, otherwise just don't execute it ....