程序中有 string para =" order by the_time ";
将 para 作为参数传入存储过程 为什么 说 the_time 不是一个有效的时间类型呢? 在索引 1 处有无效字符 ? 情况紧急
是不是因为传入的时候 存储过程加上了 '' 导致的呢? 怎样解决呢/
将 para 作为参数传入存储过程 为什么 说 the_time 不是一个有效的时间类型呢? 在索引 1 处有无效字符 ? 情况紧急
是不是因为传入的时候 存储过程加上了 '' 导致的呢? 怎样解决呢/
解决方案 »
- 这个更新语句错哪了?
- ***请教*** FTP FtpWebRequest.GetResponse() 时错误:“远程服务器返回错误: (530) 未登录。”
- 急啊,图象编辑问题
- 如何判断webBrowser控件里的网页已加载结束?
- 怎样在WIinform点击按钮,得到当前点击按钮的Text内容?
- 怎样通过类名查看类名所在的空间?(在线等.)
- [急++]C#中的空指针问题
- C# 加密 大神 有木有 ?!
- 格式化字符串問題
- 在c#中如何打印报表
- 这是第三张同样的帖子,请大家救救俺吧¥%……¥%……#¥#¥%*&&&^&%%$%##$#
- [求助].net2005 中如何从.config文件中读取参数?
解决办法是,在sp中用varchar组织一个sql语句,然后调用exec (sql)执行
比如定义一个变量:string mysql = "select * from [UserName]"
在程序中使用,SqlCommand myComm = new SqlCommand(mysql,myConnection);
那么,这是可以的,因为程序经过对mysql的分析处理转换成了有效的SQL语句。
但如果你用存储过程SqlCommand myComm = new SqlCommand(MySqlGC,myConnection);
myComm.Parameters.Add("@mysql",SqlDbType.NVarChar,50);
myComm.Parameters["@mysql"].Value = "select * from [UserName]";
面存储过程[MySqlGC]中这样写
(
@mysql NVarChar(50)
)
AS
@mysql
GO你看,这样能执行mysql的值吗?显然不行的,因为此时SQL把mysql当做一个变量,而不是一个有效的执行语句。
所以,当你把" order by the_time "赋给一个变量传过存储过程的时候,the_time已经不再是数据表的一个字段,而是para这个变量的一部份,是无效的sql语句,不会执行的。