Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将sqlcommand作为参数传递。即使数据库中存在对象,也会引发无效的对象错误_C#_Sqlcommand - Fatal编程技术网

C# 将sqlcommand作为参数传递。即使数据库中存在对象,也会引发无效的对象错误

C# 将sqlcommand作为参数传递。即使数据库中存在对象,也会引发无效的对象错误,c#,sqlcommand,C#,Sqlcommand,我对以下代码有问题。请帮忙 我试图做的是将一个sqlcommand传递给一个函数,然后该函数返回一个数据集 函数“获取数据”将sqlcommand作为参数。此函数位于“DatabaseUtilities”类中。 //Initializing sql connection static SqlConnection _Connection = new SqlConnection("Data Source=(local);Initial Catalog=db_Test;Integrat

我对以下代码有问题。请帮忙

我试图做的是将一个sqlcommand传递给一个函数,然后该函数返回一个数据集

函数“获取数据”将sqlcommand作为参数。此函数位于“DatabaseUtilities”类中。

    //Initializing sql connection
    static SqlConnection _Connection = new SqlConnection("Data Source=(local);Initial Catalog=db_Test;Integrated Security=True");

    //Connection property
    public static SqlConnection Connection
    {
        get {return _Connection;}
    }

    //The class that takes sqlcommand as parameter
    public static DataSet GetData(SqlCommand Command)
    {
        _Connection.Open();

        SqlDataAdapter Adapter = new SqlDataAdapter();
        Adapter.SelectCommand = Command;

        DataSet Table = new DataSet();

        Adapter.Fill(Table);

        _Connection.Close();

        return Table;
    }
这就是sqlcommand传递到上述函数的方式。此函数来自不同的类。

public DataSet GetLogByDate(string SearchValue)
    {
        Command.CommandType = CommandType.StoredProcedure;
        Command.Connection = DatabaseUtilities.Connection;

        Command.CommandText = "sp_GetLogByDate";
        Command.Parameters.AddWithValue("@LogDate", SearchValue);

        return GetData(Command);
    }
此代码抛出FLOWING错误。

public DataSet GetLogByDate(string SearchValue)
    {
        Command.CommandType = CommandType.StoredProcedure;
        Command.Connection = DatabaseUtilities.Connection;

        Command.CommandText = "sp_GetLogByDate";
        Command.Parameters.AddWithValue("@LogDate", SearchValue);

        return GetData(Command);
    }
对象名称“sp_GetLogByDate”无效


我的数据库中确实有上述存储过程。我不知道为什么会这样。有人能帮忙吗?

您必须将
命令
连接

//The class that takes sqlcommand as parameter
public static DataSet GetData(SqlCommand Command)
{
    Command.Connection = _Connection;

static SqlConnection
在使用多个线程(例如ASP.NET)并且甚至启用了连接池(默认)时不是一个好主意:我在传递sqlcommand的类中这样做了。公共数据集GetLogByDate(字符串搜索值){Command.CommandType=CommandType.StoredProcess;Command.Connection=DatabaseUtilities.Connection;@AbhishekSingh Command.Connection=DatabaseUtilities.Connection与您打开的实例_Connection不同。