-8

我正在尝试实现这一点

    Console.WriteLine("Enter Name: ");
    this.name = Console.ReadLine();
    string sql1 = "insert into items values ( " + this.name ")";
    DataAccess.ExecuteSQL(sql1);

当我尝试通过它输入数据时,它显示错误,未处理异常,未找到列名或编号。

我确定列名没问题,我给了它 varchar(50) 类型。这种方法不允许吗?

先感谢您。

4

2 回答 2

0

如果字段是 varchar,则需要提供引号:

string sql1 = "insert into items values ( '" + this.name + "')";

不过要小心 sql 注入,参数化查询更好。

于 2013-03-23T18:53:36.970 回答
0

首先,您的字符串周围没有引号。您还缺少一个加号。它应该是这样的:

string sql1 = "insert into items values ( '" + this.name + "')";

但是,这是通过 C# 处理 SQL 查询的一种非常糟糕的方式。您应该使用参数化查询!如果你做这样的事情,你的数据库可能会发生很多坏事......

请参阅本页底部使用带参数的 SqlCommand 类的示例:http: //msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.parameters.aspx

于 2013-03-23T18:54:06.947 回答