如何把时间作为参数传递给存储过程?? 我在调用存储过程的过程中需要把时间作为参数传递,就是在获得一个时间后,把它转换成string型后为:2006-12-9 20:10:00可是每次提示我"-"附近出现错误,我试了几次,最后感觉c#中对"-"的好象是作为什么特殊字符处理的,请问高手如何解决??谢谢!!!1 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果只是传递参数应该不会报错吧,作为个string传进去? 是在运行时 sda.fill(ds)[ sda是sqldataadepter ds 是dataset]提示错误 说第一行"-"附近有错误,我是用一个string变量接收的时间作为参数传递的.当我把存储过程中时间参数去掉后,不传时间参数就没事了,所以我判断是时间参数出了问题. 你要把存储过程里面的时间类型改成DateTime,如不然--他是认为非法,或把你的存储过代贴上来,以C·#代码 把存储过程里面的时间类型改成DateTime数据类型不匹配的话,一般会提示出错。 存储过程代码:CREATE proc sp_AddOder(@RoomId int,@CNname varchar(50),@CPhone varchar(50),@BeginTime dateTime,@endtime dateTime, @Res varchar(50)) as insert Oder values(@RoomId,@CNname,@CPhone,@BeginTime,@endtime,@Res)GOc#代码为:表示层: string st = "sp_AddOder " + roomid + "," + name + "," + phone + "," + begintime + "," + endtime + "," + re; ser.updateSql(st);数据层: public void updateSql(string st) { sda = new SqlDataAdapter(st, this.getConnection()); sda.Fill(ds); }这里的begintime 和 endtime是通过datetimepicker获得的string begintime = this.dateTimePicker1.Value.ToString();string endtime = this.dateTimePicker2.Value.ToString(); 你把begintime 和endtime先转正datetime类型的然后再作为参数传给存储过程试试。如果不行,你把存储过程里面的参数类型也改成string试试。 这段代码简直是胡闹,谁告诉你存储过程可以像 string st = "sp_AddOder " + roomid + "," + name + "," + phone + "," + begintime + "," + endtime + "," + re;这样调用的? int roomid;string name, phone, res;DateTime begintime, endtime;sqlCmd = this.getConnection().CreateCommand();sqlCmd.CommandType = CommandType.StoredProcedure;sqlCmd.CommandText = "[sp_AddOder]";System.Data.SqlClient.SqlParameter sqlParameter = new System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, false, ((byte)(0)), ((byte)(0)), "", System.Data.DataRowVersion.Current, null);sqlCmd.Parameters.Add(sqlParameter);sqlParameter = new System.Data.SqlClient.SqlParameter("@RoomId", System.Data.SqlDbType.Int, 4);sqlParameter.Value = roomid;sqlCmd.Parameters.Add(sqlParameter);sqlParameter = new System.Data.SqlClient.SqlParameter("@CNname", System.Data.SqlDbType.VarChar, 50);sqlParameter.Value = name;sqlCmd.Parameters.Add(sqlParameter);sqlParameter = new System.Data.SqlClient.SqlParameter("@CPhone", System.Data.SqlDbType.VarChar, 50);sqlParameter.Value = phone;sqlCmd.Parameters.Add(sqlParameter);sqlParameter = new System.Data.SqlClient.SqlParameter("@BeginTime", System.Data.SqlDbType.DateTime, 8);sqlParameter.Value = begintime;sqlCmd.Parameters.Add(sqlParameter);sqlParameter = new System.Data.SqlClient.SqlParameter("@endtime", System.Data.SqlDbType.DateTime, 8);sqlParameter.Value = endtime;sqlCmd.Parameters.Add(sqlParameter);sqlParameter = new System.Data.SqlClient.SqlParameter("@Res", System.Data.SqlDbType.VarChar, 50);sqlParameter.Value = res;sqlCmd.Parameters.Add(sqlParameter);sqlCmd.ExecuteNonQuery(); jointtan(), 高手。麻烦给我解决今天的richtextbox的帖子好吗?llqqff1()的。我对richtextbox其实还很模糊。 同意jointan,存储过程调用是不能这样干的.自已上网找找SqlDataCommang cm = cn.CreateCommand();cm.CommandType = CommandaType.Stor……这个要设成是存储过程类型。自已再看看 不过还是要感谢jointan() ,chinagoodyang(2008秋天烈日)我建议你也好好找找.你没用过不等于就不能用,不要随便批评别人.我用了不是一次了,只是时间作为参数不行,因为它中间有"-"这个东西.如果谁知道怎么处理麻烦尽快告诉我.谢谢. lz你加了引号没有啊?试下:string st = "sp_AddOder " + roomid + ",'" + name + "'," + phone + ",'" + begintime + "','" + endtime + "','" + re+"'"; phone也要加,只要是varchar都得加引号.string st = "sp_AddOder " + roomid + ",'" + name + "','" + phone + "','" + begintime + "','" + endtime + "','" + re+"'"; 使用NHibernate过程中 出现的奇怪问题 wpf 得到系统待机的消息 请问有没有设置时间的控件 用C#做开发有哪些不足? 一个语句写法 C# 在线等:telnet通过服务端禁止客户端回显后,想重新回显不行了 c#调用c++的dll遇到的问题_StringBuilder 请问哪位大哥有完整的使用C# 能获得当前系统中任意窗口句柄并对其进行指定操作的源代码。。谢谢50分送上 MDI问题! 关于IComparable接口的一个问题 (Winform)DataGridView分页 C#委托求助~~~~~~~~~~~~Help
如不然--他是认为非法,
或
把你的存储过代贴上来,以C·#代码
数据类型不匹配的话,一般会提示出错。
CREATE proc sp_AddOder(@RoomId int,@CNname varchar(50),@CPhone varchar(50),@BeginTime dateTime,@endtime dateTime, @Res varchar(50))
as
insert Oder values(@RoomId,@CNname,@CPhone,@BeginTime,@endtime,@Res)
GOc#代码为:
表示层:
string st = "sp_AddOder " + roomid + "," + name + "," + phone + "," + begintime + "," + endtime + "," + re;
ser.updateSql(st);
数据层:
public void updateSql(string st)
{
sda = new SqlDataAdapter(st, this.getConnection());
sda.Fill(ds);
}这里的begintime 和 endtime是通过datetimepicker获得的
string begintime = this.dateTimePicker1.Value.ToString();
string endtime = this.dateTimePicker2.Value.ToString();
string st = "sp_AddOder " + roomid + "," + name + "," + phone + "," + begintime + "," + endtime + "," + re;
这样调用的?
string name, phone, res;
DateTime begintime, endtime;
sqlCmd = this.getConnection().CreateCommand();
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.CommandText = "[sp_AddOder]";
System.Data.SqlClient.SqlParameter sqlParameter = new System.Data.SqlClient.SqlParameter("@RETURN_VALUE", System.Data.SqlDbType.Int, 4, System.Data.ParameterDirection.ReturnValue, false, ((byte)(0)), ((byte)(0)), "", System.Data.DataRowVersion.Current, null);
sqlCmd.Parameters.Add(sqlParameter);
sqlParameter = new System.Data.SqlClient.SqlParameter("@RoomId", System.Data.SqlDbType.Int, 4);
sqlParameter.Value = roomid;
sqlCmd.Parameters.Add(sqlParameter);
sqlParameter = new System.Data.SqlClient.SqlParameter("@CNname", System.Data.SqlDbType.VarChar, 50);
sqlParameter.Value = name;
sqlCmd.Parameters.Add(sqlParameter);
sqlParameter = new System.Data.SqlClient.SqlParameter("@CPhone", System.Data.SqlDbType.VarChar, 50);
sqlParameter.Value = phone;
sqlCmd.Parameters.Add(sqlParameter);
sqlParameter = new System.Data.SqlClient.SqlParameter("@BeginTime", System.Data.SqlDbType.DateTime, 8);
sqlParameter.Value = begintime;
sqlCmd.Parameters.Add(sqlParameter);
sqlParameter = new System.Data.SqlClient.SqlParameter("@endtime", System.Data.SqlDbType.DateTime, 8);
sqlParameter.Value = endtime;
sqlCmd.Parameters.Add(sqlParameter);
sqlParameter = new System.Data.SqlClient.SqlParameter("@Res", System.Data.SqlDbType.VarChar, 50);
sqlParameter.Value = res;
sqlCmd.Parameters.Add(sqlParameter);
sqlCmd.ExecuteNonQuery();
麻烦给我解决今天的richtextbox的帖子好吗?llqqff1()的。我对richtextbox其实还很模糊。
SqlDataCommang cm = cn.CreateCommand();
cm.CommandType = CommandaType.Stor……
这个要设成是存储过程类型。自已再看看
如果谁知道怎么处理麻烦尽快告诉我.谢谢.
试下:string st = "sp_AddOder " + roomid + ",'" + name + "'," + phone + ",'" + begintime + "','" + endtime + "','" + re+"'";