问题描述:问题发生在用oledb在Access数据库中运行insert语句时:
1. 该insert语句中一个字段特别长,大概有10000多个字符,如果将该字段内容单独存一个txt文件,该txt文件大小为1.5k
2. 该字段在数据库中对应的类型是 “备注”
3. 将该insert语句原样复制到access数据库上的SQL界面中运行可以顺利将数据插入数据库中,也就是说用oledb来Excute的时候才报“字段太小”错
4. C#代码:
public int DeleteAndReturnRowNum(string SQLstr)
{
if (L_OleDbCon.State.ToString().Equals("Closed"))
{
L_OleDbCon.Open();
}
OleDbCommand L_OleDbCommand = new OleDbCommand(SQLstr, L_OleDbCon);
int L_RowNum = L_OleDbCommand.ExecuteNonQuery(); //在此报错
return L_RowNum;
} 5. 该insert语句如下:
INSERT INTO [YS_HIS_Project_Mid_PS] VALUES ('8CD5HTBC08','N_','','2010','4','卫生部','中国医学科学院','中国医学科学院药物研究所','131001811','创新药物研究体系-新药发现关键技术共享平台的设备购置','仪器设备购置类','301','HE1G0UY5OR','NC1PM859LU_27151656',' ',' ',' ',' ',' ',' ',1,' ',' ',' ',' ','3980','3980','0','0','12','3980','3980','0','0','R1',' ',' ',' ',' ',' ','2','3','3','3','3','3','3','3','4',' ','该项目立项依据较充分,但是不同型号规格的液相色谱仪在此项目中申报过多。同意立项。','2109',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','2109',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','1871',' ','重复购置,建议分别核减140万元、55万元、36万元、60万元。','291',' ','报价偏高,建议分别核减70万元、20万元、10万元。','100',' ','型号不完整不确定,目的不明确,分别核减130万元、32万元、225万元、58万元。','445',' ','重复购置,分别核减6万元、49万元、53万元、54万元、53万元。','215',' ','在平台中使用效率不高,建议分别核减36万元、48万元、190万元、119万元、120万元。','513',' ','超高效分析型液相色谱仪、超高效液相分析系统、制备型高效液相、岛津制备型高效液相','全自动制备型高效液、EMKA无创动物生理信号遥测系统、三夹套超低温反应釜1L','高通量筛选自动化工作站、合成复杂样品制备系统、流式细胞分选仪、ABI快速实时速荧光定量PCR仪','梯度PCR仪、三夹套超低温反应釜0.3L、超高效液相色谱仪、快速高分离度液相色谱仪、气相色谱仪','恒温系统、大体积微波反应系统、400兆超导核磁共振谱仪、EnVisionTM多标记微孔板检测仪、全自动解离常数/油水分配系数测试仪','德国HUBER侵入式制冷反应系统','与项目有差距,建议核减92万元。','92',' ','精诺真活体生物发光成像','技术不成熟,参数不明确,建议核减180万元。','180',' ','液相色谱-串联四级杆-线形离子阱质谱仪','预算偏高','15',' ','微反应器系统','设备报价偏高,建议与商家进行充分沟通,减低成交价,核减20万元','20',' ','1','2109','535',' ',' ',' ',' ','NO',' 这就是那一万多字的字段,太长了贴不上来,你们可以自己去想象 ') 6. 报的错误为“字段太小而不能接受所要添加的数据的数量,试着插入或粘贴较少的数据”。7. 别问我为啥要把这么大的内容存入一个access数据库字段,不是我设计的....
请问各位大哥有什么方法能让我把这个超级长的字段存入access。
1. 该insert语句中一个字段特别长,大概有10000多个字符,如果将该字段内容单独存一个txt文件,该txt文件大小为1.5k
2. 该字段在数据库中对应的类型是 “备注”
3. 将该insert语句原样复制到access数据库上的SQL界面中运行可以顺利将数据插入数据库中,也就是说用oledb来Excute的时候才报“字段太小”错
4. C#代码:
public int DeleteAndReturnRowNum(string SQLstr)
{
if (L_OleDbCon.State.ToString().Equals("Closed"))
{
L_OleDbCon.Open();
}
OleDbCommand L_OleDbCommand = new OleDbCommand(SQLstr, L_OleDbCon);
int L_RowNum = L_OleDbCommand.ExecuteNonQuery(); //在此报错
return L_RowNum;
} 5. 该insert语句如下:
INSERT INTO [YS_HIS_Project_Mid_PS] VALUES ('8CD5HTBC08','N_','','2010','4','卫生部','中国医学科学院','中国医学科学院药物研究所','131001811','创新药物研究体系-新药发现关键技术共享平台的设备购置','仪器设备购置类','301','HE1G0UY5OR','NC1PM859LU_27151656',' ',' ',' ',' ',' ',' ',1,' ',' ',' ',' ','3980','3980','0','0','12','3980','3980','0','0','R1',' ',' ',' ',' ',' ','2','3','3','3','3','3','3','3','4',' ','该项目立项依据较充分,但是不同型号规格的液相色谱仪在此项目中申报过多。同意立项。','2109',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','2109',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','1871',' ','重复购置,建议分别核减140万元、55万元、36万元、60万元。','291',' ','报价偏高,建议分别核减70万元、20万元、10万元。','100',' ','型号不完整不确定,目的不明确,分别核减130万元、32万元、225万元、58万元。','445',' ','重复购置,分别核减6万元、49万元、53万元、54万元、53万元。','215',' ','在平台中使用效率不高,建议分别核减36万元、48万元、190万元、119万元、120万元。','513',' ','超高效分析型液相色谱仪、超高效液相分析系统、制备型高效液相、岛津制备型高效液相','全自动制备型高效液、EMKA无创动物生理信号遥测系统、三夹套超低温反应釜1L','高通量筛选自动化工作站、合成复杂样品制备系统、流式细胞分选仪、ABI快速实时速荧光定量PCR仪','梯度PCR仪、三夹套超低温反应釜0.3L、超高效液相色谱仪、快速高分离度液相色谱仪、气相色谱仪','恒温系统、大体积微波反应系统、400兆超导核磁共振谱仪、EnVisionTM多标记微孔板检测仪、全自动解离常数/油水分配系数测试仪','德国HUBER侵入式制冷反应系统','与项目有差距,建议核减92万元。','92',' ','精诺真活体生物发光成像','技术不成熟,参数不明确,建议核减180万元。','180',' ','液相色谱-串联四级杆-线形离子阱质谱仪','预算偏高','15',' ','微反应器系统','设备报价偏高,建议与商家进行充分沟通,减低成交价,核减20万元','20',' ','1','2109','535',' ',' ',' ',' ','NO',' 这就是那一万多字的字段,太长了贴不上来,你们可以自己去想象 ') 6. 报的错误为“字段太小而不能接受所要添加的数据的数量,试着插入或粘贴较少的数据”。7. 别问我为啥要把这么大的内容存入一个access数据库字段,不是我设计的....
请问各位大哥有什么方法能让我把这个超级长的字段存入access。
解决方案 »
- 来者有分,ASP.NET2.0中使用DTree.js实现菜单树为何生成树时非常缓慢?
- 关于模板(*.master)的问题
- 有个疑难问题 关于客户下的单子 延迟5秒再判断该单子是否有效
- 求:ASP.NET(把EXCL文件的数据导入SQL SEVER2000数据库的表中的例子).....在线等!!!!
- 简单问题,路过的近来看看咯,感激不尽!!!
- 求一个控件?
- 自定义组件如何打包
- 建个标准的打开保存 对话 有可用的控件吗 window控件 如何用在web上
- [请教]关于shtml中,相对路径的问题
- !!!!裸女跪求!!!!几个小问题,,请帮忙,,,,,55555555(UP的有分)
- 一下2个正则的区别,呵呵
- asp.net第 1 行: '=' 附近有语法错误
该sql语句可以再access上面运行只是不能通过oledb运行
private global::System.Data.DataColumn columnnId;
private global::System.Data.DataColumn columnstrAccount;
private global::System.Data.DataColumn columnstrName;
private global::System.Data.DataColumn columnstrPassword;
private global::System.Data.DataColumn columndtLastTime;
.......
insert into 语句 先严谨些,带上前面的字段试试
不是吧~~~我要用这方法生成sql我得写100多个啊
using System;
using System.IO;
using System.Data;
using System.Data.OleDb;
class BLOBDemo
{
[STAThread]
static void Main(string[] args)
{
Add("Test","2.jpg");
}
public static void Add(string categoryName, string filePath)
{
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
byte [] photo = br.ReadBytes((int)fs.Length);
br.Close();
fs.Close();
OleDbConnection cn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=northwind.mdb");
OleDbCommand cmd = new OleDbCommand("INSERT INTO 类别(类别名称, 图片) VALUES (@CategoryName, @Picture)", cn);
cmd.Parameters.Add("@CategoryName", OleDbType.VarChar,15).Value = categoryName;
cmd.Parameters.Add("@Picture", OleDbType.Binary, photo.Length).Value = photo;
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
}
}
1、是不是因为insert语句,不严谨(文章里有'造成干扰等等),导致字段值没有对号入座?
2、有没有可能不是实体表报错,而是虚拟DataTable相关字段长度太小,而导致?