用下面的OleDb连接方式 ds = GetDs("pName('p1','p2')")可以传递参数,运行成功.public DataSet GetDs(String prd)
{
OleDbConnection conn=new OleDbConnection(connstr);
conn.Open();//打开连接
OleDbDataAdapter comm=new OleDbDataAdapter();
comm.SelectCommand=new OleDbCommand();
//设置参数
comm.SelectCommand.Connection=conn;
comm.SelectCommand.CommandText=procedure;
comm.SelectCommand.CommandType=CommandType.StoredProcedure;
comm.Fill(ds);//将结果加入dataSet对象
conn.Close();//连接关闭return ds;
}但是如果采用SqlClient的方式(如下所示),ds = GetDs("pName('p1','p2')"),出错,提示错误信息为:“找不到存储过程 pName('p1','p2')”,好像是把这个当成了一个整体了? public DataSet GetDs(String prd)
{
SqlConnection conn=new SqlConnection(connstr);
conn.Open();//打开连接
SqlDataAdapter comm=new SqlDataAdapter();
comm.SelectCommand=new SqlCommand();
//设置参数
comm.SelectCommand.Connection=conn;
comm.SelectCommand.CommandText=procedure;
comm.SelectCommand.CommandType=CommandType.StoredProcedure;
comm.Fill(ds);//将结果加入dataSet对象
conn.Close();//连接关闭return ds;
}
注:用上面的方法运行不需要传递参数的存储过程是正常的,可以通过得到ds 。
{
OleDbConnection conn=new OleDbConnection(connstr);
conn.Open();//打开连接
OleDbDataAdapter comm=new OleDbDataAdapter();
comm.SelectCommand=new OleDbCommand();
//设置参数
comm.SelectCommand.Connection=conn;
comm.SelectCommand.CommandText=procedure;
comm.SelectCommand.CommandType=CommandType.StoredProcedure;
comm.Fill(ds);//将结果加入dataSet对象
conn.Close();//连接关闭return ds;
}但是如果采用SqlClient的方式(如下所示),ds = GetDs("pName('p1','p2')"),出错,提示错误信息为:“找不到存储过程 pName('p1','p2')”,好像是把这个当成了一个整体了? public DataSet GetDs(String prd)
{
SqlConnection conn=new SqlConnection(connstr);
conn.Open();//打开连接
SqlDataAdapter comm=new SqlDataAdapter();
comm.SelectCommand=new SqlCommand();
//设置参数
comm.SelectCommand.Connection=conn;
comm.SelectCommand.CommandText=procedure;
comm.SelectCommand.CommandType=CommandType.StoredProcedure;
comm.Fill(ds);//将结果加入dataSet对象
conn.Close();//连接关闭return ds;
}
注:用上面的方法运行不需要传递参数的存储过程是正常的,可以通过得到ds 。
解决方案 »
- 关于本地电脑和服务器域名下面的路径问题
- 如何解决checkboxlist递归加载,选中判断
- workflow的StateMachineInstance要using什么,我总找不到该类
- 如何对web.config文件里面的mailSettings字节加密
- 在.net中怎么写一段代码,让用户注册之后,过5秒钟返回登陆界面?
- ASP.NET中的SESSION的对象怎么存取整数呢,菜鸟求助
- 达人都进来啊,为什么我EMAIL本地测试可以发送,程序放到服务器上就发送不了了呢?
- 大家帮忙看看这个怎么改
- 在线等待,请大家帮我看看这几句简单的句子错在哪了?谢谢
- 关于DataGrid的Attributes属性
- 如何弹出“确定”与“取消”的对话框?
- XML问题 高手请进
SqlParameter sp=new SqlParameter("@p1",SqlDbType.Int);
sp.Value=3;
sda.SelectCommand.Parameters.Add(sp);
{
SqlCommand objDBCommand;
SqlParameter objParam; using( SqlConnection Conn = new SqlConnection( strCon ))
{
//重新获得需要的存储过程
GetTriggerName( ObjectOfBBS.DataOperateName.Update, 1 ); objDBCommand = new SqlCommand( strTriggerName, Conn );
objDBCommand.CommandType = CommandType.StoredProcedure; objParam = objDBCommand.Parameters.Add( "@IP", SqlDbType.VarChar );
objParam.Value = _IP ; objParam = objDBCommand.Parameters.Add( "@Act", SqlDbType.Bit ); objParam.Value = _Act; try
{
Conn.Open(); objDBCommand.ExecuteScalarExecuteNonQuery();
Conn.Close();
}
catch( Exception )
{
/*$$$把出错信息记录到LOG文件*/
Conn.Close();
return false;
}
return true;
}
}
在此处,二者为什么会有这样的差别?
DataTable dt = new DataTable();
SqlDataAdaper sda = new SqlDataAdapter(SQL,dbConn);
sda.Fill(dt);
在此处,二者为什么会有这样的差别?
EXEC SPLPRODURENAME "?",?,"?".......