相关疑难解决方法(0)

在SqlCommand中传递数组参数

我试图将数组参数传递给C#中的SQL commnd,如下所示,但它不起作用.有没有人见过它?

string sqlCommand = "SELECT * from TableA WHERE Age IN (@Age)";
SqlConnection sqlCon = new SqlConnection(connectString);
SqlCommand sqlComm = new SqlCommand();
sqlComm.Connection = sqlCon;
sqlComm.CommandType = System.Data.CommandType.Text;
sqlComm.CommandText = sqlCommand;
sqlComm.CommandTimeout = 300;
sqlComm.Parameters.Add("@Age", SqlDbType.NVarChar);
StringBuilder sb = new StringBuilder();
foreach (ListItem item in ddlAge.Items)
{
     if (item.Selected)
     {
         sb.Append(item.Text + ",");
     }
}

sqlComm.Parameters["@Age"].Value = sb.ToString().TrimEnd(',');
Run Code Online (Sandbox Code Playgroud)

c# t-sql

126
推荐指数
7
解决办法
12万
查看次数

使用ADO.Net传递表值参数

如何使用ADO.Net将表值参数传递给存储过程?

c# sql asp.net ado.net

46
推荐指数
2
解决办法
3万
查看次数

如何将List <string>转换为Sql In语句的SqlParameter?

我似乎对如何In使用a 执行语句感到困惑SqlParameter.到目前为止,我有以下代码:

cmd.CommandText = "Select dscr from system_settings where setting in @settings";
cmd.Connection = conn;
cmd.Parameters.Add(new SqlParameter("@settings", settingList));

reader = cmd.ExecuteReader();
Run Code Online (Sandbox Code Playgroud)

settingsList是一个List<string>.当cmd.ExecuteReader()被调用时,ArgumentException由于无法将a映射List<string>到"已知的提供者类型" ,我得到了.

如何(安全地)In使用SqlCommands 执行查询?

c# sql ado.net sqlcommand

18
推荐指数
2
解决办法
3万
查看次数

将 List&lt;int&gt; 作为查询参数传递给 SQL Server

我必须使用 C# 将列表传递给 SQL Server 查询。我的代码在这里:

using (SqlDataReader _myReader_2 = _myCommand_3.ExecuteReader())
{
    _Node_Neighbor.Clear();
        while (_myReader_2.Read())
        {
            _Node_Neighbor.Add(Convert.ToInt32(_myReader_2["Target_Node"]));
        }

    _myReader_2.Close();

  //Here I have to pass this _Node_Neighbor i.e. of type List<int> to another  
  //SQL Server query as:

    try
        {
            SqlCommand _myCommand_4 = _con.CreateCommand();

            _myCommand_4.CommandText = @"SELECT COUNT(*) FROM GraphEdges
                                         WHERE Source_Node IN @Source_Node 
                                         AND Target_Node IN @Target_Node";

            _myCommand_4.Parameters.AddWithValue("@Source_Node", _Node_Neighbor);
            _myCommand_4.Parameters.AddWithValue("@Target_Node", _Node_Neighbor);

            _Mutual_Links = Convert.ToInt32(_myCommand_4.ExecuteScalar());
        }
        catch(Exception e)
        {
            Console.WriteLine(e.Message);
        }
}  
Run Code Online (Sandbox Code Playgroud)

然而,要传递列表作为参数,我认为可能还有其他方法,这就是我收到此错误的原因: No mapping exists from object type Systems.Collections.Generic.List

谢谢!

c# sql-server list parameter-passing

2
推荐指数
1
解决办法
7636
查看次数

标签 统计

c# ×4

ado.net ×2

sql ×2

asp.net ×1

list ×1

parameter-passing ×1

sql-server ×1

sqlcommand ×1

t-sql ×1