从C#代码将数据插入SQL Server

我有一个表学生(身份证,姓名).然后我有一个文本框,为了输入名称,当点击提交按钮时,它会将数据插入到数据库中.那么如何只插入名称,而不是id,因为id是自动增量?

我试过这个

insert into student(id,name) values(,name)

但它不是插入我的表.

这是我的代码

protected void Button1_Click(object sender,EventArgs e)
{
    string test = txtName.Text;

    sqlConnection conn = new sqlConnection(@"Data Source=.\sqlEXPRESS;AttachDbFilename=|DataDirectory|\Person.mdf;Integrated Security=True;User Instance=True");

    string sql = "insert into student(name) values ('test')";

    try
    {
        conn.open();
        sqlCommand cmd = new sqlCommand(sql,conn);
        cmd.ExecuteNonQuery();
    }
    catch (System.Data.sqlClient.sqlException ex)
    {
        string msg = "Insert Error:";
        msg += ex.Message;
    }
    finally
    {
        conn.Close();
    }
}

解决方法

INSERT INTO student (name) values ('name')

完全省略id列,它将自动填充.要使用变量,您应该参数化SQL查询.

string sql = "INSERT INTO student (name) values (@name)";
conn.open();
sqlCommand cmd = new sqlCommand(sql,conn);
cmd.Parameters.Add("@name",sqlDbType.VarChar);
cmd.Parameters["@name"].Value = test;
cmd.ExecuteNonQuery();

您永远不应该通过构造包含输入值的sql字符串来尝试这样做,因为这会将您的代码暴露给sql注入漏洞.

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...