gpt4 book ai didi

c# - 必须在 C# 中声明标量变量

转载 作者:行者123 更新时间:2023-11-30 17:11:58 25 4
gpt4 key购买 nike

我正在用 C# 开发一个应用程序,当我在其中与数据库 SQL Server 交互时 它给了我“必须声明标量变量”的异常(exception)。代码如下

public DataTable Search(string clas)
{
try
{
DataTable table = new DataTable();
string query = "";
using (SqlConnection connection = new SqlConnection(connectionString))
{
if (clas != "")
{
query = "Select * from StudentManagement Where classEnrolled=@cls";
//dataAdapter
dataAdapter = new SqlDataAdapter(query, connectionString);
dataAdapter.SelectCommand.Parameters.Add(new SqlParameter("cls", clas));
}

dataAdapter = new SqlDataAdapter(query, connectionString);
// Create a command builder to generate SQL update, insert, and
// delete commands based on selectCommand. These are used to
// update the database.
SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);

// Populate a new data table and bind it to the BindingSource.
table.Locale = System.Globalization.CultureInfo.InvariantCulture;
dataAdapter.Fill(table);
}
return table;
}
catch (Exception e)
{
return null;
}
}

请帮帮我

最佳答案

我强烈怀疑 clas 是一个 null 引用。请注意,这仍会触发您的 != "" 分支,因为空引用与空字符串不同。

也许使用:

if(!string.IsNullOrEmpty(clas)) {...}

代替?

db 参数的一个特点是,如果 .Value 为 null,则不包括它们。检查您发送的值。

它不适用于您的情况(因为在普通 SQL 中没有任何东西等于 NULL)但是:如果您打算将 NULL 作为参数发送,则必须将值设置为 DBNull.Value .

关于c# - 必须在 C# 中声明标量变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11070656/

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