using (SqlDataReader dr = SQLHelper.ExecuteReader(SQLHelper.CONN_STRING_NON_DTC, CommandType.Text, SQL_LOGIN_ACCOUNT, Parms))
{
if(dr.Read())
return new sm_MUserInfo(dr.GetInt32(0),dr.GetString(1),dr.GetString(2);
return null;
}
===========================ExecuteReader代码=======================
public static SqlDataReader ExecuteReader(string connString, CommandType cmdType, string cmdText,params SqlParameter[] cmdParms)
{
SqlCommand cmd = new SqlCommand();
SqlConnection conn = new SqlConnection(connString); try
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
return rdr; }
catch{
conn.Close();
return null;
} }==========================PrepareCommand代码=====================
private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText,SqlParameter[] cmdParms)
{
if (conn.State != ConnectionState.Open)
conn.Open(); cmd.Connection = conn;
cmd.CommandText = cmdText; if (trans != null)
cmd.Transaction = trans; cmd.CommandType = cmdType; if (cmdParms != null)
{
foreach (SqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
}SQLHelper.CONN_STRING_NON_DTC:我设备了数据库的连接字段
SQL_LOGIN_ACCOUNT:写成是SELECT * From UserInfo Where (UserName=@UserName) and (PassWord=@PassWord)Parms:有二个参数都给定了值为什么执行到ExecuteReader代码 中的SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);就报System.Data.SqlClient.SqlException 中第一次偶然出现的“System.Data.dll”类型的异常这个错误呢~~~!我跟踪那些参数和状态都很正常呀,请问是怎么啦
{
if(dr.Read())
return new sm_MUserInfo(dr.GetInt32(0),dr.GetString(1),dr.GetString(2);
return null;
}
===========================ExecuteReader代码=======================
public static SqlDataReader ExecuteReader(string connString, CommandType cmdType, string cmdText,params SqlParameter[] cmdParms)
{
SqlCommand cmd = new SqlCommand();
SqlConnection conn = new SqlConnection(connString); try
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
return rdr; }
catch{
conn.Close();
return null;
} }==========================PrepareCommand代码=====================
private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText,SqlParameter[] cmdParms)
{
if (conn.State != ConnectionState.Open)
conn.Open(); cmd.Connection = conn;
cmd.CommandText = cmdText; if (trans != null)
cmd.Transaction = trans; cmd.CommandType = cmdType; if (cmdParms != null)
{
foreach (SqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
}SQLHelper.CONN_STRING_NON_DTC:我设备了数据库的连接字段
SQL_LOGIN_ACCOUNT:写成是SELECT * From UserInfo Where (UserName=@UserName) and (PassWord=@PassWord)Parms:有二个参数都给定了值为什么执行到ExecuteReader代码 中的SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);就报System.Data.SqlClient.SqlException 中第一次偶然出现的“System.Data.dll”类型的异常这个错误呢~~~!我跟踪那些参数和状态都很正常呀,请问是怎么啦
SqlConnection conn = new SqlConnection(connString);改成
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(conn);
SqlConnection conn = new SqlConnection(connString);改成
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(conn);
更不对呀