数据无法插入数据库中

Stu*_*uck 0 c# sql-server asp.net

我在这里问了一个问题.为什么我的数据不能插入我的数据库?我已经在SQL Server中创建了一个表.这是我的代码行供您参考.

protected void Button2_Click(object sender, EventArgs e)
{
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Connection"].ConnectionString);
    SqlCommand cmd = new SqlCommand("Insert into CarTab(Brand,Model,Plate,Color,Service) Values (@brand,@model,@plate,@color,@year,@service)",conn);

    cmd.CommandType = CommandType.Text;
    cmd.Parameters.AddWithValue("@brand", Label1.Text);
    cmd.Parameters.AddWithValue("@model", Label2.Text);
    cmd.Parameters.AddWithValue("@plate", Label3.Text);
    cmd.Parameters.AddWithValue("@color", Label4.Text);
    cmd.Parameters.AddWithValue("@year", Label5.Text);
    cmd.Parameters.AddWithValue("@service", Label6.Text);

    conn.Open();
    cmd.ExecuteNonQuery();
}
Run Code Online (Sandbox Code Playgroud)

我的代码有问题吗?请帮助我.我被困在这里.谢谢.

das*_*ash 7

Year您的命令语句中似乎缺少它:

SqlCommand cmd = new SqlCommand(
"Insert into CarTab(Brand,Model,Plate,Color,Year,Service) 
    Values (@brand,@model,@plate,@color,@year,@service)",
conn);
Run Code Online (Sandbox Code Playgroud)

您提供6个参数,但只有5列.

您收到错误消息了吗?通常,会出现一些包含某些信息的错误消息; 它通常看起来像这样:

INSERT语句中的列少于VALUES子句中指定的值.VALUES子句中的值数必须与INSERT语句中指定的列数相匹配.

编辑.

如果您仍然遇到问题,接下来要做的是查看实际的错误消息.让我们稍微重构你的代码:

using(SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Connection"].ConnectionString))
{
    using(SqlCommand cmd = new SqlCommand("Insert into CarTab(Brand,Model,Plate,Color,Service) Values (@brand,@model,@plate,@color,@year,@service)",conn))
    {

        cmd.CommandType = CommandType.Text;
        cmd.Parameters.AddWithValue("@brand", Label1.Text);
        cmd.Parameters.AddWithValue("@model", Label2.Text);
        cmd.Parameters.AddWithValue("@plate", Label3.Text);
        cmd.Parameters.AddWithValue("@color", Label4.Text);
        cmd.Parameters.AddWithValue("@year", Label5.Text);
        cmd.Parameters.AddWithValue("@service", Label6.Text);

        conn.Open();
        try
        {
            cmd.ExecuteNonQuery();
        }
        catch(Exception e)
        {
            string errorMessage = e.Message;
            //Set a label on the client to see the error message, or pause in the debugger and examine the property here.
            //throw;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果你没有看到任何错误,这就是我最初的困惑,那么实际上可能是因为你的事件处理程序没有连线; 有时,设计人员会将事件处理程序取消,这意味着您的点击和实际代码将被取消关联并且永远不会运行.

检查你有:

Button2.Click += Button2_Click; 
Run Code Online (Sandbox Code Playgroud)

InitializeComponent构造函数或Load事件中.