使用c#在数据库中插入数据

本文关键字:插入 数据 数据库 使用 | 更新日期: 2023-09-27 18:11:11

我正试图使用c#将数据插入数据库,但遇到错误这是我的代码

string @admission_no = txtAddmissionNo.Text;
string @student_name = txtStudentName.Text;
string @father_name = txtSDof.Text;
string @receipt_no=txtReceiptNo.Text;
string @acedemic_year = academic_year.Text;
string @selectdate = dtpSD.Text;
string @Class = txtClass.Text;
string @section = txtSection.Text;
string @roll_no = txtRollNo.Text;
string query = "INSERT INTO details( Admission_no,First_Name,Father_name,recepit_no,selectdate,acedemic_year,class1,section,roll_no)values( @admission_no , @student_name,@father_name,@receipt_no,@selectdate,@acedemic_year,@Class,@section ,@roll_no)";
SqlCommand cmd = new SqlCommand(query, conn);
try
{
    cmd.ExecuteNonQuery();
}
catch(Exception ex)
{
    MessageBox.Show(ex.ToString());
}

它给出了错误u必须声明@admission_no

使用c#在数据库中插入数据

您尚未向SqlCommand添加任何参数。

cmd.Parameters.Add(new SqlParameter("@admission _no", SqlDbType.VarChar)).Value
         = @admission_no;
...

您需要对插入查询字符串中使用@定义的EVERY参数执行此操作。

@符号声明C#变量可能会让您感到困惑,该符号引用变量,并允许您使用与C#关键字(如MyEventType @event(同名的变量名。这通常不是一个好主意,因为它使代码更难阅读IMO.

正如@Soner Gönül在他的评论中所指出的,仅在参数定义

中使用@
try{ 
    SqlCommand cmd = new SqlCommand(query,conn);
    cmd.Parameters.Add("@admission_no" , SqlDbType.Varchar,20).Value=txtAddmissionNo.Text;
    cmd.Parameters.Add("@student_name" , SqlDbType.Varchar,50).Value=txtStudentName.Text;
    cmd.Parameters.Add("@father_name" , SqlDbType.Varchar,50).Value=txtSDof.Text;
    cmd.Parameters.Add("@receipt_no" , SqlDbType.Varchar,20).Value=txtReceiptNo.Text;
    .... add other parameters and its value
    cmd.ExecuteNonQuery();
}
catch(Exception ex)
{
    MessageBox.Show(ex.ToString());
}