SQL Server异常组合主键

时间:2015-06-20 15:39:16

标签: c# sql sql-server

我正在尝试插入SQL Server数据库。我有一个包含四列的表,主键是三列<name, coursename, semester>的组合。

我正在尝试在此表中插入一条记录,我希望程序在插入副本时给出错误。但是,当我插入但未插入记录时,不会发出错误。

有人可以告诉我代码的问题吗?谢谢

以下是我的代码的一部分:

try
{
    string semester1 = semester.Text + syear.Text + "-" + eyear.Text;

    SqlConnection conn = new SqlConnection("Data Source=SOURAYA-PC\\SQLEXPRESS; Initial Catalog=transcripts;Integrated Security=True");

    SqlCommand command3 = new SqlCommand("insert into courses(name, coursename, semester, grade) values('" + DropDownList1.SelectedItem.Text + "','" + course_name.Text + "','" + semester1 + "',"+grades.Text+"')", conn);

    conn.Open();
    command3.ExecuteNonQuery();
}
catch (SqlException s)
{
    if (s.Number == 2627)
    {
        error.Text = "Record already exists";
    }
}

1 个答案:

答案 0 :(得分:0)

  1. 您要么缺少单引号,要么根据成绩列类型而有额外的引用。使用@marc_s表示的参数也可以解决这个问题。

  2. 要处理其他情况,您可以添加通用处理程序,如下所示:

    else {error.Text =“意外错误编号:”+ s.Number; }