请教高手。帮小弟看看代码那有问题

yanziyujing 2007-06-12 02:32:43
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

/// <summary>
/// DataBase 的摘要说明
/// </summary>
public class DataBase
{
private static DataBase _instance;
protected 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;
if (prams != null)
{
foreach (SqlParameter paramenter in prams)
{
if (paramenter != null)
{
Cmd.Parameters.Add(paramenter);

}
}
}
return Cmd;
}
public static SqlCommand CreatCmd(string procName, SqlCommand 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 RunProcGetReader(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)
{
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;
}

}
错误提示为
错误 5 “Conn”是“变量”,但此处被当做“方法”来使用 E:\WebSite1\App_Code\DataBase.cs 65 33 E:\WebSite1\
错误 6 “Conn”是“变量”,但此处被当做“方法”来使用 E:\WebSite1\App_Code\DataBase.cs 89 33 E:\WebSite1\
错误 7 与“DataBase.CreatCmd(string, System.Data.SqlClient.SqlParameter[])”最匹配的重载方法具有一些无效参数 E:\WebSite1\App_Code\DataBase.cs 125 26 E:\WebSite1\
错误 8 参数“2”: 无法从“System.Data.SqlClient.SqlConnection”转换为“System.Data.SqlClient.SqlParameter[]” E:\WebSite1\App_Code\DataBase.cs 125 44 E:\WebSite1\
。。。
怎么解决
...全文
239 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunshine_anycall 2007-12-20
  • 打赏
  • 举报
回复
直接换用Typed DataSet好了
哪里用的着这么麻烦啊?
likevs 2007-12-19
  • 打赏
  • 举报
回复
啊,我晕,这么多代码!

楼主,自己写代码容易出错,用VS的智能感知功能吧,


///
///在这里注解这个函数的作用
///
public static SqlDataReader RunProcGetReader(string procName,SqlParameter[] prams)
{
SqlCommand Cmd = CreatCmd(procName, prams);
SqlDataReader Dr = Cmd.ExecuteReader(CommandBehavior.CloseConnection);
return Dr;

}

这样每次引用时,就写入第一个字母,然后选择就得了,不会出错,看你上面,有些明明写对了,中间就出错,编程也太不细心了。
huangfuhua 2007-12-19
  • 打赏
  • 举报
回复
haha
yanziyujing 2007-06-12
  • 打赏
  • 举报
回复
public static SqlDataReader RunProcGetReader(string procName,SqlParameter[] prams)
{
SqlCommand Cmd = CreatCmd(procName, prams);
SqlDataReader Dr = Cmd.ExecuteReader(CommandBehavior.CloseConnection);
return Dr;

}
public static SqlDataReader RunProcGetReader(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)
{
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;
yanziyujing 2007-06-12
  • 打赏
  • 举报
回复
第一个错误。和大家说的那样、去掉一个括号解决。但第二个的括号在去掉。就有。问题。我把他改为
SqlConnection SqlConn = Conn();
===============================
SqlConnection SqlConn = ReturnConn();
问题也解决。为什么。不懂。第三处和第四处。为解决。错在同一行~
-过客- 2007-06-12
  • 打赏
  • 举报
回复
-_-#,不知道在你那里是不是第87行,就是CreatCmd两个参数重载的那个,参数类型错了
shilei831115 2007-06-12
  • 打赏
  • 举报
回复
public static SqlCommand CreatCmd(string procName, SqlCommand 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 conn)
-过客- 2007-06-12
  • 打赏
  • 举报
回复
第87行
public static SqlCommand CreatCmd(string procName, SqlCommand Conn)
---------->
public static SqlCommand CreatCmd(string procName, SqlConnection Conn)

yanziyujing 2007-06-12
  • 打赏
  • 举报
回复
SqlCommand Cmd = CreatCmd(procName,Conn);这是第三处错误
-过客- 2007-06-12
  • 打赏
  • 举报
回复
把你的错误行标示出来吧,难道还让大家去数哪个是33行,哪个是125行吗
yanziyujing 2007-06-12
  • 打赏
  • 举报
回复
把括号去掉第一个可以。去掉第二个。。就有问题了
shilei831115 2007-06-12
  • 打赏
  • 举报
回复
SqlConnection SqlConn = Conn();


改为:SqlConnection SqlConn = ReturnConn();


下面两个 好像是你调用的时候 参数没有写正确吧?

你可能写的是:CreatCmd(string procName,SqlParameter[] prams);可是 里面根本没有你要的函数,你好好看看,确实没有你调用的那个函数
小y的CSDN博客 2007-06-12
  • 打赏
  • 举报
回复
SqlConnection SqlConn = Conn();
改成SqlConnection SqlConn = Conn;
amandag 2007-06-12
  • 打赏
  • 举报
回复
SqlConnection SqlConn = Conn();
===============================
SqlConnection SqlConn = ReturnConn();
hongqi162 2007-06-12
  • 打赏
  • 举报
回复
SqlConnection SqlConn = Conn();//两处的Conn()的括号去掉
-过客- 2007-06-12
  • 打赏
  • 举报
回复
SqlConnection SqlConn = Conn();
-------->
SqlConnection SqlConn = Conn;

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧