c# - '无法将 MySQL 日期/时间值转换为 System.DateTime' 不使用日期 - C#.Net
问题描述
我有这个查询:
SELECT * FROM records WHERE serial LIKE '%19-111117-11%';
串行列是一个 varchar 字段。这里没有日期/时间。也许 .Net 或 MySQL 认为“19-111117-11”是一个日期?
我收到此错误:
MySql.Data.Types.MySqlConversionException:'无法将 MySQL 日期/时间值转换为 System.DateTime'
奇怪的是,这个查询在 MySql 查询浏览器中运行良好,但在我的 C# 应用程序中运行时会抛出该异常。
我试过了:
SELECT * FROM records WHERE CAST(serial as char) LIKE '%19-111117-11%';
只是为了它,我把'19-111117-11'分成两部分,如下所示:
(有点伪代码,因为之后我尝试了更多的东西)
string p1 = serial.substring(0, serial.length/2)
string p2 = serial.substring(serial.length)
string query = "SELECT * FROM records WHERE SUBSTRING(serial,0,LENGTH(serial)/2) = " + p1 + "' AND SUBSTRING(serial,LENGTH(serial)/2,LENGTH(serial)/2) = '" + p2 + "';";
请帮忙!这么烦人的问题。我不确定为什么会转换为日期/时间异常。我根本不使用日期...
编辑:
SELECT * FROM records WHERE `serial` LIKE '%19-111117-11%';
此外,不起作用。我不认为它与 C# 代码有关,因为它只是一个查询并且是 MySQL 异常,但这里是使用的代码:
string serial = "19-111117-11";
DataTable tracking_info = MySqlGetDataTable("SELECT * FROM records WHERE `serial` LIKE '%" + serial + "%';");
调用的是这个函数:
public static DataTable MySqlGetDataTable(string query, string connString = "default")
{
var data = new DataTable();
using (var conn = new MySqlConnection(connString == "default" ? Program.CidDataConnectionString : connString))
{
var adapter = new MySqlDataAdapter(query, conn);
adapter.Fill(data);
}
return data;
}
编辑2:
使用以下序列号:19-111115-11、19-111116-11、19-111118-11 都可以工作……只是 19-111117-11 不工作。它似乎与:
19-11111 7 -11 <- 那个数字
解决方案
在应用程序配置文件中设置“零日期时间=真”
<add name="CONNECTIONSTRINGNAME" connectionString="server's HOSTNAMEorIP(i.e Localhost or IP address);user id=USER_ID;Pwd=PASSWORD;persistsecurityinfo=True;database=DATABASENAME;Convert Zero Datetime=True" providerName="MySql.Data.MySqlClient"/>
推荐阅读
- json - 如何在 Apache Flink 流应用程序输出中使用编码的 Unicode 字符解码 Json 文本
- c++ - 程序因未知原因退出 (0xC0000005)
- swift - 用 NSRegularExpression 结果对字符串进行子串化的正确方法是什么?
- c# - 变量没有被赋值,Prefab在我改变了引用游戏对象的值后丢失了引用
- matlab - 如何最小化matlab中矩阵对角化绘图脚本的计算时间?
- c++ - QQuickPaintedItem 在 QML 设计器中不可见
- java - 在字符串中搜索子字符串
- google-cloud-platform - Google Cloud 中的流式插入/更新 - BigQuery
- python - 错误消息:x 和 y 必须具有相同的第一维,但具有形状 (23,) 和 (1,)
- java - 如果 Hibernate 和 Java 的第一个条件不成立,为什么使用 if-else 不会保存数据?