我正在尝试删除数据库表中的一条记录。我正在尝试根据下拉列表中的选定名称将其删除。当我调试代码时,数据集中没有可用的记录,并且发生异常“无效的列名”,但是如果我在SQL Server中运行相同的查询,一切似乎都很好。
这是我的代码:
created
这是我在SQL Server 2014中运行该查询时的查询;一切正常:
selectJobs
答案 0 :(得分:0)
如果使用c#版本> = 6.0
您可以使用插值以非常方便且不易出错的方式连接字符串。
var adpt = new SqlDataAdapter($"Select * from tc_prod_subcategory where subcategory_name = '{DropDownList2.SelectedItem.Value}'", conn);
答案 1 :(得分:0)
该错误是由于where
子句中使徒的位置不正确引起的。应该是这样的:
"Select * from tc_prod_subcategory where subcategory_name = '" + DropDownList2.SelectedItem.Value + "'"
但是该代码容易受到SQL injection的攻击,因此您应该使用参数而不是连接字符串。
var conn = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\template_castle.mdf;Integrated Security=True");
var adpt = new SqlDataAdapter("Select * from tc_prod_subcategory where subcategory_name = @subcategory_name", conn);
var ds = new DataSet();
adpt.SelectCommand.Parameters.AddWithValue("@subcategory_name", DropDownList2.SelectedItem.Value);