Hy Всем! Я пытаюсь добавить некоторые значения да / нет в мою базу данных sql с помощью некоторых переключателей и флажков. когда я нажимаю кнопку вставки, она не показывает никакой ошибки, но также не вставляет данные в таблицу. У меня есть класс DBConn, который имеет следующий код:
class DBConn
{
DataSet ds;
int c;
SqlConnection sqlconn;
SqlCommand sqlcmd;
public static string connectionString = @"Data Source=user-PC;Initial Catalog=RecruitmentProject;Integrated Security=True";
public bool IUD(String query)
{
try
{
sqlconn = new SqlConnection();
sqlconn.ConnectionString = connectionString;
sqlconn.Open();
sqlcmd = sqlconn.CreateCommand();
sqlcmd.CommandText = query;
c = sqlcmd.ExecuteNonQuery();
sqlconn.Close();
}
catch (Exception ex)
{
//MessageBox.Show(ex.Message);
}
if (c > 0)
return true;
else
return false;
}
Ниже приведен мой код для вставки:
public void ins_Skills()
{
String cnic = txtCNIC.Text;
String added = lblLoginID.Text;
string query = "Insert INTO ComputerSkills_Table (cnic,ComputerSkills,MSOffice,MSWord,MSExcell,MSPpt,MSAccess,Typing,EnglishType,UrduType,Networking,Programming,[Database],AddedBy) VALUES (@cnic, @ComputerSkills, @MSOffice, @MSWord, @MSExcell, @MSPpt, @MSAccess, @Typing, @EnglishType, @UrduType, @Networking, @Programming, @db, @AddedBy)";
SqlCommand cmd = new SqlCommand(query, conn);
//Pass values to Parameters
if(cmbComp.Text != "No")
{
cmd.Parameters.AddWithValue("@cnic", txtCNIC.Text);
cmd.Parameters.AddWithValue("@ComputerSkills", rbComp.Text);
cmd.Parameters.AddWithValue("@MSOffice", rbOffice.Text);
cmd.Parameters.AddWithValue("@MSWord", rbWord.Text);
cmd.Parameters.AddWithValue("@MSExcell", rbExcell.Text);
cmd.Parameters.AddWithValue("@MSPpt", rbPpt.Text);
cmd.Parameters.AddWithValue("@MSAccess", rbAccess.Text);
cmd.Parameters.AddWithValue("@Typing", rbTyping.Text);
cmd.Parameters.AddWithValue("@EnglishType", rbEngType.Text);
cmd.Parameters.AddWithValue("@UrduType", rbUrduType.Text);
cmd.Parameters.AddWithValue("@Networking", rbNetwork.Text);
cmd.Parameters.AddWithValue("@Programming", rbProgram.Text);
cmd.Parameters.AddWithValue("@db", rbDB.Text);
cmd.Parameters.AddWithValue("@AddedBy", lblLoginID.Text);
}
else if(cmbComp.Text == "No")
{
cmd.Parameters.AddWithValue("@cnic", txtCNIC.Text);
cmd.Parameters.AddWithValue("@ComputerSkills", "No");
cmd.Parameters.AddWithValue("@MSOffice", "No");
cmd.Parameters.AddWithValue("@MSWord", "No");
cmd.Parameters.AddWithValue("@MSExcell", "No");
cmd.Parameters.AddWithValue("@MSPpt", "No");
cmd.Parameters.AddWithValue("@MSAccess", "No");
cmd.Parameters.AddWithValue("@Typing", "No");
cmd.Parameters.AddWithValue("@EnglishType", "No");
cmd.Parameters.AddWithValue("@UrduType", "No");
cmd.Parameters.AddWithValue("@Networking", "No");
cmd.Parameters.AddWithValue("@Programming", "No");
cmd.Parameters.AddWithValue("@db", "No");
cmd.Parameters.AddWithValue("@AddedBy", lblLoginID.Text);
}
try
{
conn.Open();
Console.WriteLine(query);
cmd.ExecuteNonQuery();
MessageBox.Show("Records inserted");
//q = db.IUD(query); //DBConn Function Call
} // try
catch (SqlException ex)
{
MessageBox.Show("Records not inserted", ex.StackTrace);
} // catch
finally
{
conn.Close();
}
теперь он не показывает вставленные данные в окне сообщения и не делаетон показывает не вставленное окно сообщения, как будто запрос не передается или не вызывается. кто-то может помочь?
РЕДАКТИРОВАТЬ: я прошел через это снова и понял, что функция не вызывается, когда радиокнопка Да была отмечена в предыдущей форме. теперь он показывает окно сообщения «Данные вставлены», но когда я проверяю таблицу, значения вообще не вставляются.
код для получения значения от радиокнопки:
private void rbNetwork_CheckedChanged(object sender, EventArgs e)
{
network = rbNetwork.Text;
}
и затем я помещаю сетевую переменную со значением радиокнопки в запросе в качестве значения для сетевого столбца. но я думаю, что переменная имеет нулевое значение, поэтому в таблицу ничего не вставлено, и таблица остается такой же, как если бы она была создана только с одной строкой, а все столбцы имеют нулевое значение.
РЕДАКТИРОВАТЬ: (2) Я снова отладил свой код, как рекомендовано здесь некоторыми друзьями, и это исключение, которое я получаю:
Первое случайное исключение типа 'System.Data.SqlClient.SqlException' произошло в системе. Data.dll