日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql驱动不支持批处理_ADO.NET 中可以发送包含多个SQL语句的批处理脚本到SQL Server,但是用MySQL的ODBC驱动不行...

發布時間:2025/4/16 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql驱动不支持批处理_ADO.NET 中可以发送包含多个SQL语句的批处理脚本到SQL Server,但是用MySQL的ODBC驱动不行... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

眾所周知,我們在ADO.NET中可以使用NuGet包System.Data.SqlClient來操作SQL Server,并且ADO.NET是支持向SQL Server發送包含多個SQL語句的批處理腳本的。

我們新建一個.NET Core控制臺項目,然后引入下面兩個NuGet包:

然后下面的代碼演示了,我們使用NuGet包System.Data.SqlClient向SQL Server發送了一段包含UPDATE和INSERT語句的SQL批處理腳本:

string connectionString = "Data Source=192.168.1.102;Initial Catalog=TestDB;Integrated Security=True";string sql = @"UPDATE jobs

SET JobStatus=999,

EndTime=GETDATE()

Where JobStatus<100;

INSERT INTO jobs(JobCode,JobStatus,StartTime)

VALUES(N'db555cc9-56fe-42f6-8c31-ce99e9b856c4',0,GETDATE());";using (SqlConnection sqlCon = newSqlConnection(connectionString))

{

sqlCon.Open();var sqlCommand = newSqlCommand(sql, sqlCon);

sqlCommand.ExecuteNonQuery();

}

這種用法在System.Data.SqlClient上很常見,我們可以很方便地將若干個SQL語句寫在一個字符串里,然后通過System.Data.SqlClient一次性發送到SQL Server進行處理。

但是如果現在我們使用NuGet包System.Data.Odbc,往MySQL中也發送一段包含UPDATE和INSERT語句的SQL批處理腳本:

string connectionString = "Dsn=MySQL_DB";string sql = @"UPDATE jobs

SET JobStatus=999,

EndTime=NOW()

Where JobStatus<100;

INSERT INTO jobs(JobCode,JobStatus,StartTime)

VALUES(N'db555cc9-56fe-42f6-8c31-ce99e9b856c4',0,NOW());";using (OdbcConnection oCon = newOdbcConnection(connectionString))

{

oCon.Open();var oCommand = newOdbcCommand(sql, oCon);

oCommand.ExecuteNonQuery();

}

那么上面的代碼會在執行到oCommand.ExecuteNonQuery()時拋出異常:

ERROR [42000] [MySQL][ODBC 8.0(w) Driver][mysqld-8.0.11]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO jobs(JobCode,JobStatus,StartTime)

VALUES(N'db555cc9-56f' at line 6

原因就是因為MySQL的ODBC驅動,不支持將若干個SQL語句寫在一個字符串里,然后通過System.Data.Odbc發送到MySQL數據庫進行處理。

如果要使用System.Data.Odbc向MySQL數據庫發送多條SQL語句,只能像下面這樣一條一條地分多次發送,而不能在一個字符串中一次性發送:

string connectionString = "Dsn=MySQL_DB";using (OdbcConnection oCon = newOdbcConnection(connectionString))

{

oCon.Open();string sql = @"UPDATE jobs

SET JobStatus=999,

EndTime=NOW()

Where JobStatus<100;";var oCommand = newOdbcCommand(sql, oCon);

oCommand.ExecuteNonQuery();//先發送UPDATE語句到MySQL數據庫

sql= @"INSERT INTO jobs(JobCode,JobStatus,StartTime)

VALUES(N'db555cc9-56fe-42f6-8c31-ce99e9b856c4',0,NOW());";

oCommand= newOdbcCommand(sql, oCon);

oCommand.ExecuteNonQuery();//再發送INSERT語句到MySQL數據庫

}

可以看到我們只能使用System.Data.Odbc,分兩次,先發送UPDATE語句,再發送INSERT語句到MySQL數據庫,才不會拋出異常報錯。

總結

以上是生活随笔為你收集整理的mysql驱动不支持批处理_ADO.NET 中可以发送包含多个SQL语句的批处理脚本到SQL Server,但是用MySQL的ODBC驱动不行...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产视频精品一区二区三区 | 亚洲狠狠| 亚洲理论视频 | 在线观看中文字幕一区 | 美女一区二区视频 | 免费成人看片 | 超碰人人人 | 欧美 日韩 人妻 高清 中文 | 都市激情久久 | 丰满人妻老熟妇伦人精品 | 亚洲欧美制服丝袜 | 国产成人av一区二区三区不卡 | 欧美| 亚洲精品 日韩无码 | 夜夜摸夜夜爽 | 中国女人特级毛片 | 日本激情网 | 九色porn蝌蚪 | 亚洲国产成人在线 | 打屁屁日本xxxxx变态 | 日韩一区二区三区四区五区 | 色97| 国产123| 草逼导航| 国语对白永久免费 | 日本一二三区视频 | 午夜视频在线免费看 | 99精品视频播放 | 在线观看免费的av | 欧美一区二区三区四区五区 | 靠逼动漫 | 欧美国产成人在线 | 国产精品综合视频 | 奇米精品一区二区三区四区 | 久久久啊啊啊 | 欧美激情一区二区视频 | 一二区在线视频 | 日大逼| 亚洲精品推荐 | 天天爽夜夜爽夜夜爽精品视频 | 欧美熟妇精品黑人巨大一二三区 | 日韩av在线资源 | 国产日韩精品在线观看 | 在线观看99 | 国产视频自拍一区 | 国产三级全黄裸体 | av一区二区三区在线观看 | 九色在线视频 | 成人在线观看18 | 91一区二区在线观看 | 日本韩国免费观看 | 国产精品久久久影院 | 日韩激情久久 | 国产日韩欧美二区 | 日韩精品一区二区三区视频在线观看 | 婷婷的五月 | 成人午夜视频在线观看 | 国产一区二区在线精品 | 成人激情片 | 免费人成视频在线 | 美女脱了内裤喂我喝尿视频 | 国产午夜av| 国产片天天弄 | 制服丝袜av在线播放 | 91av官网 | 日韩一区二区三区精品 | 看片国产 | 黄色同人网站 | 超碰999| 日本一区二区三区在线视频 | 97精品视频在线观看 | 日本做受 | 亚洲精品在线观看免费 | 亚洲制服另类 | 国产三级久久 | 欧美日韩高清一区二区 | 中文字幕在线日韩 | 中文字幕一区二区三区精彩视频 | 国产午夜精品久久久久久久久久 | 少妇网站在线观看 | av网站网址 | 97精品国产97久久久久久春色 | 一区二区三区日韩电影 | 亚洲精品6| 国产精品久久久久久 | 欧美日韩大片 | 99极品视频 | 91免费官网 | 色啪网站 | 国产www性| 国产成人久久婷婷精品流白浆 | 中文字幕第二页 | 天天操夜夜干 | 亚洲一区二区免费看 | 日韩高清二区 | 日韩欧美中文字幕在线观看 | 国产一区日韩精品 | 免费大片黄在线观看视频网站 | 男女做激情爱呻吟口述全过程 |