SqlCommand INSERT 查询不向数据库中插入数据

Posted

技术标签:

【中文标题】SqlCommand INSERT 查询不向数据库中插入数据【英文标题】:SqlCommand INSERT query does not insert data into the database 【发布时间】:2016-08-09 09:28:43 【问题描述】:

我正在处理Visual Studio 2013。

在下面的代码中,MessageBox.Show("Connected to database") 显示正确,但是 SQL 查询没有将数据插入到数据库表中。

当我手动插入数据时,它会毫无问题地插入。但不幸的是,数据无法在button_click 命令上插入。

private void DataAdd_Load(object sender, EventArgs e)

    try
    
        conn = new SqlConnection("Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=Pathname;Integrated Security=True;Connect Timeout=30");
        conn.Open();
        MessageBox.Show("Connected to database");
        cmd = new SqlCommand("INSERT INTO datains (name, dob, gender, occupation, height, weight, relation, polexpo) values('abc', '22-Aug-2001', 'Male', 'qwe2', '23', '431', 'qw23e', 'asqwed');", conn);
    
    catch (Exception e1)
    
        MessageBox.Show("Connection failed");
    

我在这里做错了什么或我错过了什么?

【问题讨论】:

是否调用了 DataAdd_Load?你有什么异常吗?,你没有关闭你必须的连接。 SqlCommand INSERT INTO query does not execute的可能重复 @Adil 这是我的愚蠢错误,没有编写 cmd.ExecuteNonquery ,想了好几个小时,最后堆栈溢出帮助了!。感谢您的帮助! 【参考方案1】:

您忘记执行查询:

cmd.ExecuteNonQuery();

工作完成后关闭连接也比较好:

conn.Close();

【讨论】:

【参考方案2】:

您必须运行 cmd 的 ExecuteNonQuery() 方法才能使其工作,但最好将连接和命令都包装到 using 语句中,以便它们将被释放(连接也应显式关闭)

【讨论】:

以上是关于SqlCommand INSERT 查询不向数据库中插入数据的主要内容,如果未能解决你的问题,请参考以下文章

SqlCommand和SqlDataAdapter有什么区别

如何使用 SqlCommand 返回多个结果集?

IDENTITY_INSERT ON不被实体框架DBSet.Add方法所尊重

access 数据库 DBHelper 执行查询的命令用啥 我只知道 sqlserver 用 sqlcommand

SqlCommand 和 SqlDataAapter 的参数

在同一代码中多次使用同一 SQLCommand 实例进行多次查询?