当前位置: 首页 > news >正文

高性能网站建设在线阅读推广衣服的软文

高性能网站建设在线阅读,推广衣服的软文,网站域名价值查询工具,阿贝云免费服务器是不是真的话说这Access数据库确实是有点年代了,前面在深圳的一家放射医疗公司,数据库用的Access,后面在我的建议下,换成了SQLite。用SQLite多舒服,不用装Runtime,还可以用EF。Access得装Runtime,也用不了…

话说这Access数据库确实是有点年代了,前面在深圳的一家放射医疗公司,数据库用的Access,后面在我的建议下,换成了SQLite。用SQLite多舒服,不用装Runtime,还可以用EF。Access得装Runtime,也用不了EF。

回到长沙后,找了一家工业仪器的公司,发现也是用的Access数据库。

结果模糊查询 的时候,发现不对劲,这里总结几点C#在使用Access数据库时可能会遇到的问题

1、连接字符串

Access 2007 (文件后缀为.accdb)

没有密码的情况

Provider = Microsoft.Ace.OleDb.12.0;Data Source={0};Persist Security Info=False;

有密码的情况

Provider = Microsoft.Ace.OleDb.12.0;Data Source={0};Jet OleDb:DataBase Password='{1}';

说明:实际使用时,用string.Format()函数将{0}替换成数据库路径,{1}替换成密码即可

实际如下:

Provider = Microsoft.Ace.OleDb.12.0;Data Source=D:\test.accdb;Jet OleDb:DataBase Password='123';

Access 2003 (文件后缀为.mdb)

将Provider替换为Microsoft.Jet.OleDb.4.0即可,如下

Provider=Microsoft.Jet.OleDb.4.0;Data Source=D:\test.accdb;Jet OleDb:DataBase Password='123';
 

2、不使用OleDbParameter时,日期需要使用##包起来

有时候可能查询的语句比较简单,就不想使用参数的形式的,直接去拼SQL语句,如果判断的条件是日期,就要用##将日期包起来,不然会报错,如下

var sql = "Select * From Test Where  Date BETWEEN #2021/03/13# AND #2021/03/14#";

使用了参数,就可以不用带#。如下

 var sql = "Select * From Test Where  Date BETWEEN #@StartDate# AND #@EndDate#";System.Data.OleDb.OleDbParameter[] parameters = new System.Data.OleDb.OleDbParameter[]{new System.Data.OleDb.OleDbParameter("@StartDate","2021/03/13"),new System.Data.OleDb.OleDbParameter("@EndDate","2021/03/14")};

3、使用OleDbParameter时,日期需要传字符串

上面已经使用过参数了,这里需要注意的时,不能直接传DateTime类型,而是需要传入字符串,不然会报错。这次就是在公司遇到这个问题,调试了好久,因为太久没用Access,不记得了。

4、在Access里执行查询时,通配符使用* ,在C#中,使用%

例如在Access中直接执行模糊查询语句,查询包含z的姓名

Select * from Test Where Name Like '*z*';

在C#中需要将*替换成%,如下:

var sql = Select * from Test Where Name Like '%z%';

5、使用Where false可以查询表结构

var sql = "Select * from Test Where false";

这操作我以前还不知道,试了下SQL Server是不支持这操作的。 

6、查询语句包含单引号' 时,需要用两个单引号 ''

如:

Select * from xx where Des = 'what's'

要写成

Select * from xx where Des = 'what''s'

 7、判断表是否存在

调用OleDbConnectionGetOleDbSchemaTable函数,如下:

tableName就是要查询的表名

 OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=a.mdb");con.Open();var dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, tableName, "TABLE" });

GetOleDbSchemaTable会返回一个数据源架构信息的DataTable,再判断DataTable的行数是否大于0即可判断指定的表是否存在

 if(dt.Rows.Count > 0){Console.WriteLine("Exist")  }else{Console.WriteLine("Not exist")  }

通过这种方式也可以查询某个表是否存在某一列

tableName是要查询的表名,columnName是要查询的列名

 con.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, tableName, columnName });

到新公司也没写啥项目,目前就遇到这几个问题吧,做个总结。

http://www.tj-hxxt.cn/news/77968.html

相关文章:

  • 沧州响应式网站开发申请网站域名要多少钱
  • 创意广告视频网站外贸营销策略都有哪些
  • 公司网站建设 宁波网站建设的公司
  • 熊掌号怎么域名做网站整站排名优化公司
  • 上海网站建设设计制作网站的排名优化怎么做
  • 做网站公司哪个好微商软文大全
  • 部门网站建设内容方案口碑营销案例2021
  • 广州网站建设公司小程序浙江seo外包费用
  • 沧州做网站的长尾词挖掘工具爱站网
  • 济南做外贸网站成都搜狗seo
  • 网站可以做固定资产吗软文推广发布
  • 如何建设微信网站北京网站优化经理
  • 网站建设页面生成济南seo优化公司
  • 网站代码加密了怎么做优化网站打开速度
  • 怎么建立一个网址seo专业培训课程
  • 百度seo新站优化关键词排名优化怎么样
  • 网站建设需要什么知识网站怎么做收录
  • 网站建设网站合同版本微信营销的方法和技巧
  • 贵阳网站建设方案推广无线新闻台直播app下载
  • 网站登录设计欣赏国际网站平台有哪些
  • 阿里巴巴的网站是自己做的吗太原网站建设开发
  • 运营网站赚钱竞价推广哪里开户
  • 温州微网站开发深圳优化排名公司
  • 电商网站建设属于研发费用吗网站建立的步骤
  • 沧州做网站的公司排名永久免费自助建站平台
  • 网页升级访问最新区域每天自动更新重庆关键词优化服务
  • 专业点的网站制作公司app开发平台开发
  • 外贸企业独立建站山东seo推广公司
  • 网站首页漂浮广告代码舆情分析
  • 介绍一学一做视频网站吗永久免费的培训学校管理软件