在SQL中写: Create Procedure insertData
(
@ProcedctName nvarchar(80),
@UnitPrice Money
)
As
Insert Products (ProcedctName,UnitPrice)
Values (@ProcedctName, @UnitPrice)运行之,在数据库中生成存储过程
(
@ProcedctName nvarchar(80),
@UnitPrice Money
)
As
Insert Products (ProcedctName,UnitPrice)
Values (@ProcedctName, @UnitPrice)运行之,在数据库中生成存储过程
Cmd.Parameters.Add("@ProcedctName",12.34)Conn.Open()
Cmd.ExecuteNonQuery()
Conn.Close
Cmd.Parameters.Add("@UnitPrice",12.34)Conn.Open()
Cmd.ExecuteNonQuery()
Conn.Closesorry!!!心急!写错了!!!!^_^ 谢谢!!!
我还是不太明白你的意思,在SQL里?是在生成报表时的添加命令里,还是在sql server里?我的存储过程是已经存在的,要做的是利用这个存储过程来生成一张报表,以图的形式展现
假设:
数据库名称:myDB
存储过程名:CreateShell(输入变量为@BeginTime和@EndTime)
传入参数:BeginTime\EndTime
调用存储过程代码:private static DataSet createshell(string BeginTime,string EndTime)
{
string strConn=null;
strConn="user id=sa;password=sa;initial catalog=myDb;data source=localhost"; SqlConnection mConnection=new SqlConnection(strConn);
SqlDataAdapter myCommand = new SqlDataAdapter("CreateShell", mConnection); myCommand.SelectCommand.CommandType = CommandType.StoredProcedure; myCommand.SelectCommand.Parameters.Add(new SqlParameter("@CustomerID", SqlDbType.SmallDataTime, 4));
myCommand.SelectCommand.Parameters["@BeginTime"].Value =BeginTime.Trim();
myCommand.SelectCommand.Parameters["@EndTime"].Value =EndTime.Trim();
DataSet ds = new DataSet();
myCommand.Fill(ds,"Shell");
return ds;
}希望能够帮你解决些问题。谢谢!
谢谢你的回复,我本意是因为我的存储过程需要时间参数,可是如果我直接在生成报表向导里的添加命令里直接执行存储过程,我将无法跟着向导继续选择以何种方式来展示报表了
up !!!我帮你顶!!!!!!!!!!!!!!!!!
如果用向导,先建立一个xsd文件(例如ds1.xsd)
在向导中选择这个文件为数据源
完成向导剩余部分
存储过程执行将返回一个dataset
然后把dataset复制给ds1.xsd
(例如:DataSet objDataSet=new DS1();
填充ojbDataSet;)
然后显示报表
还有一种方法,直接给crystal report传递参数,不过比较麻烦
不知道你想问什么,没看懂你的问题,我也不是很熟悉这块
个人意见,仅供参考
string para2="2002-12-26";SqlConnection mConnection=new SqlConnection(strConn);
SqlDataAdapter myCommand = new SqlDataAdapter("sp_yourstoredprocedure '"+para1+"','"+para2+"'", mConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds,"table1");
在设计报表的时候,使用本工程中建立的DataSet结构作为数据源。
在浏览报表的时候,先把数据读到DataSet里,再把DataSet显示到报表上。
SqlDataAdapter myCommand = new SqlDataAdapter("b_p_kdfx '"+begindate+"','"+enddate+"'", nwindConn);
DataSet ds=new DataSet();
myCommand.Fill(ds,"syyyrbb");如果还是不行,就将你的存储过程的接收参数的数据类型改为字符串