gpt4 book ai didi

c# - 参数附近的语法不正确

转载 作者:行者123 更新时间:2023-12-03 19:30:08 25 4
gpt4 key购买 nike

我使用的是 Visual Studio 2013、C# 和 SQL Server 数据库。

如果我用具体值替换参数,T-SQL 命令就可以正常工作。

我在最后一行代码中收到此错误:

Incorrect syntax near '@Collection1'.

我的代码:

string myCommandString = "select Name, Collection, Text from List_Card @Collection1";
SqlConnection myConnection = new SqlConnection(connectionstring);

SqlCommand myCommand = new SqlCommand(myCommandString, myConnection);
SqlDataAdapter myydata = new SqlDataAdapter();

if (comboBox1.Text != "")
{
string1 = "where Collection IN (select Shortcut from Collections where Collection Like '" + comboBox1.Text + "')";
}
else
{
string1 = "";
}

myCommand.Parameters.Add(new SqlParameter("@Collection1", string1));
myydata.SelectCommand = myCommand;

myConnection.Open();
DataTable myytab = new DataTable();
myydata.Fill(myytab);

最佳答案

您的代码中有几个错误。

首先,你的 myCommandString:

"select Name, Collection, Text from List_Card @Collection1"

这是无效的 SQL 语法(您收到的错误是什么)。您没有对该参数执行任何操作。您需要将其作为 WHERE 子句的一部分,但您没有使用该值。

接下来,您完全错误地使用了SqlParameter。查看the documentation看看如何正确使用它。具体问题是您没有指定条件 SQL 字符串作为第二个参数。您需要有条件地将其附加到您的查询中。

最后,您还应该将所有内容包装在 using 语句中以正确处置对象。

这应该会给你你正在寻找的东西:

var myCommandString = "select Name, Collection, Text from List_Card ";

if (comboBox1.Text != "")
{
myCommandString += " where Collection IN (select Shortcut from Collections where Collection Like '@Collection1')";
}

using (var myConnection = new SqlConnection(connectionstring))
using (var myCommand = new SqlCommand(myCommandString, myConnection))
{
myCommand.Parameters.Add(new SqlParameter("@Collection1", string1));

using (var myData = new SqlDataAdapter())
{
myData.SelectCommand = myCommand;
myConnection.Open();

var myytab = new DataTable();
myydata.Fill(myytab);
}
}

关于c# - 参数附近的语法不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47382071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com