C#数据库执行报错

爱水心寒 2015-08-10 07:18:33
我执行的是最简单的SQL语句,我现在有两个库,一个是客户的,一个是我自己建的,用客户的数据库就会报如下图的错误,但是用我自己的数据库就不会,现在可以知道应该是数据库的问题,但不知道问题在哪?应该怎么解决?还请各位大神帮忙解决一下,红色框中的代码就是执行报错的地方。
...全文
195 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
爱水心寒 2015-08-11
  • 打赏
  • 举报
回复
引用 10 楼 Tiger_Zhao 的回复:
[Quote=引用 2 楼 qq_19784269 的回复:]我现在怀疑是库的编码方式问题,因为客户是台湾的,所以用的是繁体,而我的库是简体。 [/Quote] 需要在客户的系统上安装简体中文语言。 [Quote=引用 8 楼 qq_19784269 的回复:]我现在程序的CurrentCulture是zh-CN。这个还是一个只读属性,还修改不了。 [/Quote] 这在工程属性中可改。
没找到,还请指点一下
爱水心寒 2015-08-11
  • 打赏
  • 举报
回复
引用 9 楼 yupeigu 的回复:
[quote=引用 6 楼 qq_19784269 的回复:] [quote=引用 3 楼 yupeigu 的回复:] [quote=引用 2 楼 qq_19784269 的回复:] [quote=引用 1 楼 yupeigu 的回复:] 你的sql是怎么写的呢,能贴出来嘛
select EBELN,EBELP,CONVERT(varchar(100), SLRQ, 111) as CheckDate,MATNR,MAKTX from ZMES_IQC_DATA 就是最简单的SQL,我把它改成select * from ZMES_IQC_DATA都同样会报错,但是我自己新建了一个TEST库,表结构是一样的,就是用原来库的SQL建的表,就不会报错了。TEST库是我自己建的。我现在怀疑是库的编码方式问题,因为客户是台湾的,所以用的是繁体,而我的库是简体。[/quote] 你直接把这个sql语句,在客户的数据库 执行会报错吗: select EBELN,EBELP,CONVERT(varchar(100), SLRQ, 111) as CheckDate,MATNR,MAKTX from ZMES_IQC_DATA[/quote] 不会,可以直接查询到结果[/quote] 你这几个字段里,有哪些是 显示字符串的,可能是 字符集的问题[/quote] 这几个都是字符串的,你对了。我把SQL改成select 1 from ZMES_IQC_DATA,这个时候就没有问题了,这个字符集应该怎么修改?
Tiger_Zhao 2015-08-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 qq_19784269 的回复:]我现在怀疑是库的编码方式问题,因为客户是台湾的,所以用的是繁体,而我的库是简体。 [/Quote]
需要在客户的系统上安装简体中文语言。
[Quote=引用 8 楼 qq_19784269 的回复:]我现在程序的CurrentCulture是zh-CN。这个还是一个只读属性,还修改不了。 [/Quote]
这在工程属性中可改。
LongRui888 2015-08-11
  • 打赏
  • 举报
回复
引用 6 楼 qq_19784269 的回复:
[quote=引用 3 楼 yupeigu 的回复:] [quote=引用 2 楼 qq_19784269 的回复:] [quote=引用 1 楼 yupeigu 的回复:] 你的sql是怎么写的呢,能贴出来嘛
select EBELN,EBELP,CONVERT(varchar(100), SLRQ, 111) as CheckDate,MATNR,MAKTX from ZMES_IQC_DATA 就是最简单的SQL,我把它改成select * from ZMES_IQC_DATA都同样会报错,但是我自己新建了一个TEST库,表结构是一样的,就是用原来库的SQL建的表,就不会报错了。TEST库是我自己建的。我现在怀疑是库的编码方式问题,因为客户是台湾的,所以用的是繁体,而我的库是简体。[/quote] 你直接把这个sql语句,在客户的数据库 执行会报错吗: select EBELN,EBELP,CONVERT(varchar(100), SLRQ, 111) as CheckDate,MATNR,MAKTX from ZMES_IQC_DATA[/quote] 不会,可以直接查询到结果[/quote] 你这几个字段里,有哪些是 显示字符串的,可能是 字符集的问题
爱水心寒 2015-08-11
  • 打赏
  • 举报
回复
引用 7 楼 Tiger_Zhao 的回复:
看你图片中的错误提示,是构造 CultureInfo 时出错。 应该时数据库/字段的语言当前系统不支持。
我觉得是数据库的语言问题,但是我不知道怎么修改。我重新建一个数据库,然后将客户数据库中的数据转到我的库中,这个时候也没有问题。但就是客户的数据库不行。不知道怎么破。我现在程序的CurrentCulture是zh-CN。这个还是一个只读属性,还修改不了。
Tiger_Zhao 2015-08-11
  • 打赏
  • 举报
回复
看你图片中的错误提示,是构造 CultureInfo 时出错。
应该时数据库/字段的语言当前系统不支持。
爱水心寒 2015-08-11
  • 打赏
  • 举报
回复
引用 3 楼 yupeigu 的回复:
[quote=引用 2 楼 qq_19784269 的回复:] [quote=引用 1 楼 yupeigu 的回复:] 你的sql是怎么写的呢,能贴出来嘛
select EBELN,EBELP,CONVERT(varchar(100), SLRQ, 111) as CheckDate,MATNR,MAKTX from ZMES_IQC_DATA 就是最简单的SQL,我把它改成select * from ZMES_IQC_DATA都同样会报错,但是我自己新建了一个TEST库,表结构是一样的,就是用原来库的SQL建的表,就不会报错了。TEST库是我自己建的。我现在怀疑是库的编码方式问题,因为客户是台湾的,所以用的是繁体,而我的库是简体。[/quote] 你直接把这个sql语句,在客户的数据库 执行会报错吗: select EBELN,EBELP,CONVERT(varchar(100), SLRQ, 111) as CheckDate,MATNR,MAKTX from ZMES_IQC_DATA[/quote] 不会,可以直接查询到结果
爱水心寒 2015-08-11
  • 打赏
  • 举报
回复
引用 4 楼 Tiger_Zhao 的回复:
检查下数据库是否区分大小写。 如果是区分大小写的,很可能语句中表名、字段名和数据库定义的大小写不一致。
数据库的编码方式已经改成不区分大小写了。
Tiger_Zhao 2015-08-11
  • 打赏
  • 举报
回复
检查下数据库是否区分大小写
如果是区分大小写的,很可能语句中表名、字段名和数据库定义的大小写不一致。
LongRui888 2015-08-11
  • 打赏
  • 举报
回复
引用 2 楼 qq_19784269 的回复:
[quote=引用 1 楼 yupeigu 的回复:] 你的sql是怎么写的呢,能贴出来嘛
select EBELN,EBELP,CONVERT(varchar(100), SLRQ, 111) as CheckDate,MATNR,MAKTX from ZMES_IQC_DATA 就是最简单的SQL,我把它改成select * from ZMES_IQC_DATA都同样会报错,但是我自己新建了一个TEST库,表结构是一样的,就是用原来库的SQL建的表,就不会报错了。TEST库是我自己建的。我现在怀疑是库的编码方式问题,因为客户是台湾的,所以用的是繁体,而我的库是简体。[/quote] 你直接把这个sql语句,在客户的数据库 执行会报错吗: select EBELN,EBELP,CONVERT(varchar(100), SLRQ, 111) as CheckDate,MATNR,MAKTX from ZMES_IQC_DATA
爱水心寒 2015-08-11
  • 打赏
  • 举报
回复
引用 1 楼 yupeigu 的回复:
你的sql是怎么写的呢,能贴出来嘛
select EBELN,EBELP,CONVERT(varchar(100), SLRQ, 111) as CheckDate,MATNR,MAKTX from ZMES_IQC_DATA 就是最简单的SQL,我把它改成select * from ZMES_IQC_DATA都同样会报错,但是我自己新建了一个TEST库,表结构是一样的,就是用原来库的SQL建的表,就不会报错了。TEST库是我自己建的。我现在怀疑是库的编码方式问题,因为客户是台湾的,所以用的是繁体,而我的库是简体。
Tiger_Zhao 2015-08-11
  • 打赏
  • 举报
回复
这倒是很有可能。CE设备不支持多语言。
你数据库改用 nvarchar 类型,出问题的可能会小一点。
爱水心寒 2015-08-11
  • 打赏
  • 举报
回复
引用 18 楼 Tiger_Zhao 的回复:
只要 .Net Framwork 2.0 就有了啊。
可能还是平台的问题,同样的应用程序,我在Win7下面执行就没问题,在Windows CE设备中执行就有问题。无语了,搞了两天了。
Tiger_Zhao 2015-08-11
  • 打赏
  • 举报
回复
只要 .Net Framwork 2.0 就有了啊。
爱水心寒 2015-08-11
  • 打赏
  • 举报
回复
引用 15 楼 Tiger_Zhao 的回复:
可以的啊
using System;
using System.Globalization;
using System.Threading;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Thread.CurrentThread.CurrentCulture = new CultureInfo("zh-TW");
            Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-TW");
            this.Text = CultureInfo.CurrentCulture.ToString() +
                      "," + CultureInfo.CurrentUICulture.ToString();
        }
    }
}
是不是我少引用了哪个命名空间,为什么我的Thread.CurrentThread没有CurrentCulture属性?
爱水心寒 2015-08-11
  • 打赏
  • 举报
回复
忘了一个非常严重的信息。我的执行程序的目标设备是Windows CE设备,我刚刚让我的程序强行在win7下执行,结果也是没有问题的。
Tiger_Zhao 2015-08-11
  • 打赏
  • 举报
回复
可以的啊
using System;
using System.Globalization;
using System.Threading;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("zh-TW");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-TW");
this.Text = CultureInfo.CurrentCulture.ToString() +
"," + CultureInfo.CurrentUICulture.ToString();
}
}
}
爱水心寒 2015-08-11
  • 打赏
  • 举报
回复
引用 13 楼 Tiger_Zhao 的回复:
我记错了,工程中的语言是对当前编辑的资源的。 强制指定语言需要自己设置 Thread.CurrentCulture/Thread.CurrentUICulture。
这个设置不了,我试了,显示是只读属性,不可赋值。
Tiger_Zhao 2015-08-11
  • 打赏
  • 举报
回复
我记错了,工程中的语言是对当前编辑的资源的。
强制指定语言需要自己设置 Thread.CurrentCulture/Thread.CurrentUICulture。
LongRui888 2015-08-10
  • 打赏
  • 举报
回复
你的sql是怎么写的呢,能贴出来嘛

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧