Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.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# 数据表数据库连接_C# - Fatal编程技术网

C# 数据表数据库连接

C# 数据表数据库连接,c#,C#,我有从存储过程中获取数据表的代码。由于某些原因,它永远无法从SQL Server获取数据 var conSTR = ConfigurationManager.ConnectionStrings["SRKBS-PB"].ConnectionString; using(conDB = new SqlConnection(conSTR)) { cmd = new SqlCommand(); cmd.CommandType = System.Data.C

我有从存储过程中获取数据表的代码。由于某些原因,它永远无法从SQL Server获取数据

var conSTR = ConfigurationManager.ConnectionStrings["SRKBS-PB"].ConnectionString;

using(conDB = new SqlConnection(conSTR))
{
            cmd = new SqlCommand();
            cmd.CommandType = System.Data.CommandType.StoredProcedure;
            cmd.CommandText = "sp_GetDeity";
            conDB.Open();

            DataTable dt = new DataTable();
            dt.Load(cmd.ExecuteReader());

            return dt;
}

调试期间,
condb
包含数据,但
dt
为空。我已经检查了SQL Server端,一切都很好。请帮忙。谢谢

您创建了新连接,但从未打开它。ExecuteReader需要打开且可用的连接

string constring = System.Configuration.ConfigurationManager.ConnectionStrings["SRKBS-PB"].ConnectionString;
using(conDB = new SqlConnection(constring))
using(cmd = new SqlCommand("sp_GetDeity", conDB))
{
    conDB.Open(); // open the connection
    cmd.CommandType = System.Data.CommandType.StoredProcedure;

    DataTable dt = new DataTable();
    dt.Load(cmd.ExecuteReader());

    return dt;
}

您已创建了新连接,但从未打开它。ExecuteReader需要打开且可用的连接

string constring = System.Configuration.ConfigurationManager.ConnectionStrings["SRKBS-PB"].ConnectionString;
using(conDB = new SqlConnection(constring))
using(cmd = new SqlCommand("sp_GetDeity", conDB))
{
    conDB.Open(); // open the connection
    cmd.CommandType = System.Data.CommandType.StoredProcedure;

    DataTable dt = new DataTable();
    dt.Load(cmd.ExecuteReader());

    return dt;
}

您已创建了新连接,但从未打开它。ExecuteReader需要打开且可用的连接

string constring = System.Configuration.ConfigurationManager.ConnectionStrings["SRKBS-PB"].ConnectionString;
using(conDB = new SqlConnection(constring))
using(cmd = new SqlCommand("sp_GetDeity", conDB))
{
    conDB.Open(); // open the connection
    cmd.CommandType = System.Data.CommandType.StoredProcedure;

    DataTable dt = new DataTable();
    dt.Load(cmd.ExecuteReader());

    return dt;
}

您已创建了新连接,但从未打开它。ExecuteReader需要打开且可用的连接

string constring = System.Configuration.ConfigurationManager.ConnectionStrings["SRKBS-PB"].ConnectionString;
using(conDB = new SqlConnection(constring))
using(cmd = new SqlCommand("sp_GetDeity", conDB))
{
    conDB.Open(); // open the connection
    cmd.CommandType = System.Data.CommandType.StoredProcedure;

    DataTable dt = new DataTable();
    dt.Load(cmd.ExecuteReader());

    return dt;
}



是ypur存储过程本质上是动态的,还是我可以说您正在存储过程中进行动态查询是的,我正在进行一个简单的选择查询您需要更改读取连接字符串的代码,所以我现在使用:var conSTR=ConfigurationManager.ConnectionString[“SRKBS-PB”].ConnectionString;使用(conDB=new-SqlConnection(contr)),但由于某些原因,数据表永远不会被填充:SSide注意:您不应该为存储过程使用
sp
前缀。微软已经这样做了,而且你确实有可能在将来的某个时候发生名称冲突。最好只是简单地避免使用
sp.
并使用其他东西作为前缀,或者根本不使用前缀!是ypur存储过程本质上是动态的,还是我可以说您正在存储过程中进行动态查询是的,我正在进行一个简单的选择查询您需要更改读取连接字符串的代码,所以我现在使用:var conSTR=ConfigurationManager.ConnectionString[“SRKBS-PB”].ConnectionString;使用(conDB=new-SqlConnection(contr)),但由于某些原因,数据表永远不会被填充:SSide注意:您不应该为存储过程使用
sp
前缀。微软已经这样做了,而且你确实有可能在将来的某个时候发生名称冲突。最好只是简单地避免使用
sp.
并使用其他东西作为前缀,或者根本不使用前缀!是ypur存储过程本质上是动态的,还是我可以说您正在存储过程中进行动态查询是的,我正在进行一个简单的选择查询您需要更改读取连接字符串的代码,所以我现在使用:var conSTR=ConfigurationManager.ConnectionString[“SRKBS-PB”].ConnectionString;使用(conDB=new-SqlConnection(contr)),但由于某些原因,数据表永远不会被填充:SSide注意:您不应该为存储过程使用
sp
前缀。微软已经这样做了,而且你确实有可能在将来的某个时候发生名称冲突。最好只是简单地避免使用
sp.
并使用其他东西作为前缀,或者根本不使用前缀!是ypur存储过程本质上是动态的,还是我可以说您正在存储过程中进行动态查询是的,我正在进行一个简单的选择查询您需要更改读取连接字符串的代码,所以我现在使用:var conSTR=ConfigurationManager.ConnectionString[“SRKBS-PB”].ConnectionString;使用(conDB=new-SqlConnection(contr)),但由于某些原因,数据表永远不会被填充:SSide注意:您不应该为存储过程使用
sp
前缀。微软已经这样做了,而且你确实有可能在将来的某个时候发生名称冲突。最好只是简单地避免使用
sp.
并使用其他东西作为前缀,或者根本不使用前缀!不应该负责打开和关闭。我是C语言的初学者#如果OP没有打开连接,他会得到
ExecuteReader()
需要打开连接异常。使用
注意处理object@Rajiv
使用
将处理对象(几乎在所有情况下都会优雅地关闭连接),但不是它的打开或配置
使用
是否可以替代在代码遇到错误时使用
最终
块关闭连接的需要error@Rajiv:SqlDataAdapter类将负责打开和关闭连接,但仅限于该类。
SqlDataReader
需要一个打开的连接-在调用
cmd.ExecuteReader()
aint之前,您有责任打开它,并负责打开和关闭连接。我是C语言的初学者#如果OP没有打开连接,他会得到
ExecuteReader()
需要打开连接异常。使用
注意处理object@Rajiv
使用
将处理对象(几乎在所有情况下都会优雅地关闭连接),但不是它的打开或配置
使用
是否可以替代在代码遇到错误时使用
最终
块关闭连接的需要error@Rajiv:SqlDataAdapter类将负责打开和关闭连接,但仅限于该类。
SqlDataReader
需要一个打开的连接-在调用
cmd.ExecuteReader()
aint之前,您有责任打开它,并负责打开和关闭连接。我是C语言的初学者#如果OP没有打开连接,他会得到
ExecuteReader()
需要打开连接异常。使用
注意处理object@Rajiv
使用
将处理对象(几乎在所有情况下都会优雅地关闭连接),但不是它的打开或配置
使用
是否可以替代在代码遇到错误时使用
最终
块关闭连接的需要error@Rajiv:SqlDataAdapter类将负责打开和关闭连接,但仅限于该类。
SqlDataReader
需要一个开放的连接,这是您的责任