C#连接ACESS时,sql语句有错
在写sql语句时,一般都是一句解决,从来没想过说,把sql语句拆开来写。
例如下面这句: string readstring = "select * from 实例 where 实例ID='"+eid+"'";
然后执行 Myconnection();
DataSet ds = new DataSet();
OleDbDataAdapter da = new OleDbDataAdapter(readstring, Mycon);
这时候就会报错。。不是说“sql语句有错”,就是“数据类型不匹配”,更麻烦的是,运行成功了,但是运行的结果一直有错。。
后来,才发现原来如果连接的是acess的话,以上的这句sql是要变成下面这样写的:
string readstr = "select * from 实例 where 实例ID=";
string readstring = readstr + eid;
像下面这样的代码,才能运行无误:
int eid = Form1.int_selected + 1;
string readstr = "select * from 实例 where 实例ID=";
string readstring = readstr + eid;
Myconnection();//连接数据库
DataSet ds = new DataSet();
OleDbDataAdapter da = new OleDbDataAdapter(readstring, Mycon);
da.Fill(ds, "实例");
qbox1.Text = ds.Tables[0].Rows[0][3].ToString();
dxbox1.Text = ds.Tables[0].Rows[0][4].ToString();
相关文档:
错误提示,有一个文件已经挂起,必须重新启动计算机。重新启动,再次安装仍然是同样的问题。
注册表键值的问题。解决方法:
只要删除\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\下的PendingFileRenameOperations键值,就可以重新安装了。
删除后安装,不必重新启动计算机。 ......
---返回表达式中指定字符的开始位置
select charindex('c','abcdefg',1)
---两个字符的值之差
select difference('bet','bit')
---字符最左侧指定数目
select left('abcdef',3)
---返回字符数
select len('abcdefg')
--转换为小字符
select lower('ABCDEFG')
--去左空格后
select ltrim(' &nbs ......
有关分页 SQL 的资料很多,有的使用存储过程,有的使用游标。本人不喜欢使用游标,我觉得它耗资、效率低;使用存储过程是个不错的选择,因为存储过程是经过预编译的,执行效率高,也更灵活。先看看单条 SQL 语句的分页 SQL 吧。
方法1:
适用于 SQL Server 2000/2005
SELECT TOP 页大小 *
from tab ......
语法:
isnull(check_expression,replacement_expression)
参数check_expression与replacement_expression类型需相同
返回值:
若check_expression为null,则返回replacement_expression
若check_expression不为null,则返回check_expression ......