【问题标题】:Fields not inserting into my SQL Server [duplicate]未插入我的 SQL Server 的字段 [重复]
【发布时间】:2016-02-10 14:54:23
【问题描述】:

我正在使用 Visual Studio,我已连接到 SQL 服务器,并且正在尝试更新数据库中的表。

我没有收到任何错误,也没有更新任何内容

下面是我用过的代码

protected void Btn1_Click(object sender, EventArgs e)
{
    //SQL for insert here.
    string MyConnectionString = ConfigurationManager.ConnectionStrings
            ["testconnect"].ConnectionString;

    SqlConnection myConnection = new SqlConnection();
    myConnection.ConnectionString = MyConnectionString;
    myConnection.Open();

    SqlCommand cmd = new SqlCommand("insert into Don_Test (ID, Test) values ('" + IDTxt.Text + "','" + TESTTxt.Text + "')", myConnection);

    //Call refresh 
    refreshPage();

    myConnection.Close();
}

【问题讨论】:

  • 您的列类型是什么? ID 听起来像是基于其名称的数字类型。而且您永远不会使用ExecuteNonQuery 执行查询。无论如何,您应该始终使用parameterized queries。这种字符串连接对SQL Injection 攻击开放。
  • 您错过了运行查询cmd.executenonquery;
  • 数字和 nchar。这是在 SQL server 数据库表中

标签: c# asp.net .net sql-server ado.net


【解决方案1】:

实际上,您并没有执行查询,只是打开连接并稍后关闭它。

refreshPage()之前添加代码行cmd.ExecuteNonQuery();

还要注意 - 连接查询文本是非常糟糕的主意,因为它会导致 SQL 注入攻击。

请改用parameterized query

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-26
    • 2014-03-03
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    相关资源
    最近更新 更多