小小问题,来者有分
学了好久的asp.net,却没怎么用过存储过程,大家帮我看一下下面的代码并作一下解释,有些地方不明白啊,我照着视频做都出错,上了年纪,学东西力不从心啊,只能做个人爱好了,大家帮我看看并解释一下,送大分了
public class DataBase
{
private static DataBase _instance;
public DataBase()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public static DataBase getInstance()
{
if (_instance == null)
{
_instance = new DataBase();
}
return _instance;
}
public static SqlConnection ReturnConn()
{
string strConn = System.Configuration.ConfigurationManager.AppSettings[ "ConnectionString "];
SqlConnection Conn = new SqlConnection(strConn);
if(Conn.State.Equals(ConnectionState.Closed ))
{
Conn.Open();
}
return Conn;
}
public static SqlCommand creatCmd(string procName,SqlParameter [] prams)
{
SqlConnection Conn=ReturnConn();
SqlCommand Cmd = new SqlCommand();
Cmd.CommandType = CommandType.StoredProcedure;
Cmd.Connection = Conn;
Cmd.CommandText = procName;
if (prams != null)
{
foreach(SqlParameter paramenter in prams)
{
if(paramenter !=null)
{
Cmd.Parameters.Add(paramenter);
}
}
}
return Cmd;
}
public static SqlCommand CreatCmd(string procName, SqlParameter[] prams, SqlConnection Conn)
{
SqlConnection SqlConn = Conn;
if (SqlConn.State.Equals (ConnectionState.Closed))
{
SqlConn.Open();
}
SqlCommand Cmd = new SqlCommand();
Cmd.CommandType = CommandType.StoredProcedure;
Cmd.Connection = SqlConn;
Cmd.CommandText = procName;
return Cmd;
}
public static SqlCommand CreatCmd(string procName)
{
SqlConnection SqlConn = ReturnConn();
SqlCommand Cmd = new SqlCommand();
Cmd.CommandType = CommandType.StoredProcedure;
Cmd.Connection = SqlConn;
Cmd.CommandText = procName;
return Cmd;
}
public static SqlDataReader RunProcGetReader(string procName,SqlParameter[] prams)
{
SqlCommand Cmd = CreatCmd(procName, prams);
SqlDataReader Dr = Cmd.ExecuteReader(CommandBehavior.CloseConnection);
return Dr;
}
public static SqlDataReader RunProGetReader(string procName, SqlParameter[] prams, SqlConnection Conn)
{
SqlCommand Cmd = creatCmd(procName, prams, Conn);
SqlDataReader Dr = Cmd.ExecuteReader(CommandBehavior.CloseConnection);
return Dr;
}
public static SqlDataReader RunProcGetReader(string procName, SqlConnection Conn)
{
SqlCommand Cmd = CreatCmd(procName, Conn);
SqlDataReader Dr = Cmd.ExecuteReader(CommandBehavior.CloseConnection);
return Dr;
}
public static SqlDataReader RunProcGetReader(string procName)
{
SqlCommand cmd = CreatCmd(procName);
SqlDataReader Dr =cmd.ExecuteReader (CommandBehavior.CloseConnection);
return Dr;
}
public static DataTable RunProcGetTable(string procName, SqlParameter[] prams, SqlConnection Conn)//返回DataTable
{
SqlCommand Cmd = CreatCmd(procName, prams, Conn);
SqlDataAdapter Dtr = new SqlDataAdapter();
DataSet Ds = new DataSet();
Dtr.SelectCommand = Cmd;
Dtr.Fill(Ds);
DataTable Dt = Ds.Tables[0];
Conn.Close();
return Dt;
}
public static int RunExecute(string procName)
{
SqlConnection Conn = ReturnConn();
SqlCommand Cmd = CreatCmd(procName, Conn);
int intResult = Cmd.ExecuteNonQuery();
Conn.Close();
return intResult;
}
public static int RunExecute(string procName,SqlParameter[] prams)
{
SqlConnection Conn = ReturnConn();
SqlCommand Cmd = CreatCmd(procName, prams, Conn);
int intResult = Cmd.ExecuteNonQuery();
Conn.Close();
return intResult;
}
public static int RunExecuteScalar(string procName)
{
SqlConnection Conn = ReturnConn();
SqlCommand Cmd = CreatCmd(procName, Conn);
int intResult = Convert.ToInt32(Cmd.ExecuteScalar());
Conn.Close();
return intResult;
}
public static int RunExecuteScalar(string procName, SqlParameter[] prams)
{
SqlConnection Conn = ReturnConn();
SqlCommand Cmd = CreatCmd(procName, prams, Conn);
int intResult = Convert.ToInt32(Cmd.ExecuteScalar());
Conn.Close();
return intResult;
}
}
编译出错:错误1“CreatCmd”方法没有采用“2”个参数的重载C:\Inetpub\wwwroot\WebSite2\App_Code\DataBase.cs9026C:\...\WebSite2\
错误2“creatCmd”方法没有采用“3”个参数的重载C:\Inetpub\wwwroot\WebSite2\App_Code\DataBase.cs9826C:\...\WebSite2\
同样一个错误好几个,
[解决办法]
public static SqlCommand creatCmd(string procName,SqlParameter [] prams) <==方法名字小写了
[解决办法]
C#是区分大小写的
你这里的代码实在不咋滴,还不如看看PETSHOP和Enterprise Library
[解决办法]
注意大小写,还有你直接在报错行的后面写上注释,这行报什么什么错。哪么长的代码看起来累呀。
[解决办法]
SqlCommand Cmd = CreatCmd(procName, prams, Conn);
SqlCommand Cmd = CreatCmd(procName, Conn);
对比一下
你现在这个程序中CreatCmd方法的使用你还没有看明白什么意思吧
[解决办法]
我来接分的,大叔
[解决办法]
jf
[解决办法]
asp.net2.0可是实现无代码数据库增删改,不用那么费劲了,呵呵
[解决办法]
呵呵,楼上几位还真快。
学新东西是要付出努力的,加油!
[解决办法]
mark先!!
[解决办法]
顶