c# - 通过文本框在 sql server 2005 中存储数据时出错

标签 c# asp.net database sql-server-2005

我通过文本框和按钮在 SQL Server 2005 中存储数据(大约 1500 个字)。我正在使用此代码。

protected void Button1_Click(object sender, EventArgs e)
{
    conn.Open();
    String query = String.Format("insert into try (data,sno) values ('{0}',22)",TextBox1.Text);
    SqlCommand cmd = new SqlCommand(query, conn);
    cmd.ExecuteNonQuery();
    Label1.Text = "submitted";
    conn.Close();
}

我有 'data' 列,数据类型为 'char(4000)'

问题是,当我存储第 1 段(大约 1500 字)时,它存储成功。但是当我存储另一段(大约 1500 字)时,它显示错误。

"Incorrect syntax near 's'. Unclosed quotation mark after the character string ',22)'."

问题是什么??

最佳答案

使用Parameters

String query = "insert into try (data,sno) values (@data,22)"; 
SqlCommand cmd = new SqlCommand(query, conn); 
cmd.Parameters.AddWithValue("@data", TextBox1.text);
cmd.ExecuteNonQuery(); 

通过这种方式,您无需担心文本中存在单引号,最重要的是,您可以避免 SqlInjection Attacks

关于c# - 通过文本框在 sql server 2005 中存储数据时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11054477/

相关文章:

c# - 辅助类/存储类的内聚力低,这真的是错误的吗?

c# - 异步/等待 vs BeginRead、EndRead

c# - GridView 编辑 - 检查行颜色

mysql - 如何启动具有特定增量值的mysql列?

java - 文件保存在文件系统 VS 数据库中

c# - 使用列表作为 DataGridView 的数据源

c# - 在 HTML 选择控件 (.NET/C#) 中的列表项上设置自定义属性

c# - WebDAV 浏览

c# - 如何提供模型以供查看?

mysql - 如何在Mysql中存储动态大小的实体