private SqlParameter p;
private ArrayList li=new ArrayList();#region ** 添加参数
//添加 Input 类型参数
//参数 2 个:参数名,参数值
public void AddInputParam(string strName,object strValue)
{
p=new SqlParameter();
p.ParameterName=strName.Trim();
p.Value=strValue;
p.Direction=ParameterDirection.Input; li.Add(p);
}//上面是把参数放入数组的方法 调用这个方法先把参数保存//例子
public DataSet getDs(string strTop)
{
p.Clear();
AddInputParam("@Top", strTop); //这里strTop是传入的参数
DataSet ds = SqlComd.CreateDataSet("存储过程名", p, "返回的表名");
p.Clear();
return ds;
}
***********************************************************************************
//有参数存储过程的 DataSet 对象
public static DataSet CreateDataSet(string spName,DbParameters p,string tblName)
{
DataSet ds=new DataSet();
SqlDataAdapter comdAdapter=new SqlDataAdapter(spName,DbConn.SqlConn);
comdAdapter.SelectCommand.CommandType=CommandType.StoredProcedure;
if(p.Length>0)
{
for(int i=0;i<p.Length;i++)
{
SqlParameter parm=(SqlParameter)p[i];
comdAdapter.SelectCommand.Parameters.Add(parm);
}
}
comdAdapter.Fill(ds,tblName);
DbConn.SqlConn.Close();
comdAdapter.Dispose();
return ds;
}
//我能提供的帮助就这样了...这其实不光1 2句话能说全的 是从逻辑层 数据访问层 数据库存储过程的一个整体访问流程。上面的有点改动 有Bug你自己稍微修改下。
LZ说的RunProcedure我没有听说过。
private ArrayList li=new ArrayList();#region ** 添加参数
//添加 Input 类型参数
//参数 2 个:参数名,参数值
public void AddInputParam(string strName,object strValue)
{
p=new SqlParameter();
p.ParameterName=strName.Trim();
p.Value=strValue;
p.Direction=ParameterDirection.Input; li.Add(p);
}//上面是把参数放入数组的方法 调用这个方法先把参数保存//例子
public DataSet getDs(string strTop)
{
p.Clear();
AddInputParam("@Top", strTop); //这里strTop是传入的参数
DataSet ds = SqlComd.CreateDataSet("存储过程名", p, "返回的表名");
p.Clear();
return ds;
}
***********************************************************************************
//有参数存储过程的 DataSet 对象
public static DataSet CreateDataSet(string spName,DbParameters p,string tblName)
{
DataSet ds=new DataSet();
SqlDataAdapter comdAdapter=new SqlDataAdapter(spName,DbConn.SqlConn);
comdAdapter.SelectCommand.CommandType=CommandType.StoredProcedure;
if(p.Length>0)
{
for(int i=0;i<p.Length;i++)
{
SqlParameter parm=(SqlParameter)p[i];
comdAdapter.SelectCommand.Parameters.Add(parm);
}
}
comdAdapter.Fill(ds,tblName);
DbConn.SqlConn.Close();
comdAdapter.Dispose();
return ds;
}
//我能提供的帮助就这样了...这其实不光1 2句话能说全的 是从逻辑层 数据访问层 数据库存储过程的一个整体访问流程。上面的有点改动 有Bug你自己稍微修改下。
LZ说的RunProcedure我没有听说过。
解决方案 »
- 用户登陆从数据库取值验证问题
- 如何删除小于某个时间(2009-2-10)的文章,并且返回处理后的 DataTable。
- 取值问题
- 100分,“为什么都说VS2005 Team Suite版 自带了 Visio VSS,可是我就是没有 ”,在线,解决了,立即给200分。
- windows 2003 server 建立ASP.net 的虚拟目录,访问需要输入用户名及密码?
- 本人兼职开发(C#,asp.net,sql),要价便宜,有意者请回帖。
- 讨厌的换行符!!!!!
- 请问怎样设置DropDownList的样式?
- 为什么用creatobject不可以把excel打开并显示?
- datagird怎么将数据库的值变换输出
- 陕北吴旗娃为什么aspnetpager中为什么点击按钮后不起作用呢
- Button的Onclick事件老是报错
mycomm = new SqlCommand(mysql, myconn);
mycomm.Parameters.Add(new SqlParameter("@chuqu", SqlDbType.NVarChar, 50));
mycomm.Parameters["@chuqu"].Value = htmlencode(zhuti1); mycomm.Parameters.Add(new SqlParameter("@neirong", SqlDbType.NText));
mycomm.Parameters["@neirong"].Value = Info.Value;
public int runProc(string procedureName, SqlParameter[] sqlPrams)
{
SqlCommand sqlComm = CreateCommand(procedureName, sqlPrams);
try
{ sqlComm.ExecuteNonQuery();
}
catch (Exception ex)
{
throw new Exception(ex.Message, ex);
}
return (int)sqlComm.Parameters["ReturnValue"].Value; }
private SqlCommand CreateCommand(string ProcedureName, SqlParameter[] SqlPrams)
{
//打开数据库连接
this.myOpen(); SqlCommand Sqlcmd = new SqlCommand(ProcedureName, this.Connection);
Sqlcmd.CommandType = CommandType.StoredProcedure; // 添加储存过程参数
if (SqlPrams != null)
{
foreach (SqlParameter Sqlparameter in SqlPrams)
{
Sqlcmd.Parameters.Add(Sqlparameter);
}
} // 返回参数
Sqlcmd.Parameters.Add(
new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null)); return Sqlcmd;
}