C# 使用C代码在Informix数据库中保存图像?
如何使用C代码在Informix数据库中保存图像 目前,我无法使用C代码在Informix数据库中保存图像 所有步骤都有效,只有当查询即将执行时,才会抛出错误“E4200:(-201)发生语法错误” 下面是代码C# 使用C代码在Informix数据库中保存图像?,c#,database,informix,C#,Database,Informix,如何使用C代码在Informix数据库中保存图像 目前,我无法使用C代码在Informix数据库中保存图像 所有步骤都有效,只有当查询即将执行时,才会抛出错误“E4200:(-201)发生语法错误” 下面是代码 mycon.Open(); int len = Upload.PostedFile.ContentLength; byte[] pic = new byte[len]; HttpPostedFile img = Upload.PostedFile; Response.Write("Siz
mycon.Open();
int len = Upload.PostedFile.ContentLength;
byte[] pic = new byte[len];
HttpPostedFile img = Upload.PostedFile;
Response.Write("Size of file = " + pic);
img.InputStream.Read(pic, 0, len);
//Upload.PostedFile.InputStream.Read(pic,0,len);
string str = "insert into imageinfo (name,address,photo) values('" + txtname.Text + "','" + txtaddress.Text + "'," + pic + ")";//,photo,@photo
mycmd = new OleDbCommand(str, mycon);
//mycmd.Parameters.AddWithValue("@id", int.Parse(txtid.Text));
mycmd.Parameters.AddWithValue("@name", txtname.Text);
mycmd.Parameters.AddWithValue("@address", txtaddress.Text);
mycmd.Parameters.AddWithValue("@photo", pic);
mycmd.ExecuteNonQuery();
mycon.Close();
lblMessage.Text = "Image details inserted successfully";
Response.Redirect("~/RetriveImage.aspx");
mycon.Close();
首先,您的代码是来自至少两个源的复制/粘贴混乱,因为这毫无意义 您的insert直接具有值-并且您不能像那样将pic放入,抱歉-但是您定义了未使用的参数。2源代码 然后无意识地复制/粘贴代码。您定义了命名参数,但OleDb不支持命名参数(http://social.msdn.microsoft.com/Forums/en-US/vsreportcontrols/thread/637db5d4-e205-489c-b127-7ca14abc48e3/)位置上的唯一参数,这告诉我您曾经通过OleDb在Informix中使用过参数,只是将代码复制/粘贴在一起
- 删除INSERT语句中的直接数据,放入参数标记
- 然后根据我发送给您的MS链接使用参数(位置,标记是否为?)
有时,它可能要求您实际阅读文档,而不是仅仅将来自不同来源的代码拼接在一起并寻求帮助。首先,您的代码是来自至少两个来源的复制/粘贴混乱,因为这毫无意义 您的insert直接具有值-并且您不能像那样将pic放入,抱歉-但是您定义了未使用的参数。2源代码 然后无意识地复制/粘贴代码。您定义了命名参数,但OleDb不支持命名参数(http://social.msdn.microsoft.com/Forums/en-US/vsreportcontrols/thread/637db5d4-e205-489c-b127-7ca14abc48e3/)位置上的唯一参数,这告诉我您曾经通过OleDb在Informix中使用过参数,只是将代码复制/粘贴在一起
- 删除INSERT语句中的直接数据,放入参数标记
- 然后根据我发送给您的MS链接使用参数(位置,标记是否为?)
有时,它可能要求您实际阅读文档,而不是仅仅将不同来源的代码拼接在一起并寻求帮助。您尝试过什么吗?我想不会。请阅读并多次尝试,但它抛出了一些错误“E4200:(-201)发生语法错误”。请编写代码、错误消息和有关特定问题的更多信息。好的,修复语法错误。从文档开始-您使用OleDb,OleDb不使用命名参数。插入有值,但定义参数。这闻起来像是“无知的,只是无意识地将代码复制/粘贴在一起,现在又在抱怨,从未学过编程”。如果这听起来很刺耳,很抱歉,但这段代码闻起来好像来自两个来源。Informix数据库中ImageInfo.Photo列的类型是什么?很可能无法将图片的字符串表示形式转换为该类型。或者,可能是您的语句太长(部分取决于您正在使用的Informix版本——客户端代码)。要执行的操作取决于类型信息。如果您使用的是BLOB类型(与CLOB、BYTE或TEXT相反),则可以使用
FILETOBLOB('client-file','client')
函数代替pic
的字符串版本。。。或者…你试过什么吗?我想不会。请阅读并多次尝试,但它抛出了一些错误“E4200:(-201)发生语法错误”。请编写代码、错误消息和有关特定问题的更多信息。好的,修复语法错误。从文档开始-您使用OleDb,OleDb不使用命名参数。插入有值,但定义参数。这闻起来像是“无知的,只是无意识地将代码复制/粘贴在一起,现在又在抱怨,从未学过编程”。如果这听起来很刺耳,很抱歉,但这段代码闻起来好像来自两个来源。Informix数据库中ImageInfo.Photo列的类型是什么?很可能无法将图片的字符串表示形式转换为该类型。或者,可能是您的语句太长(部分取决于您正在使用的Informix版本——客户端代码)。要执行的操作取决于类型信息。如果您使用的是BLOB类型(与CLOB、BYTE或TEXT相反),则可以使用FILETOBLOB('client-file','client')
函数代替pic
的字符串版本。。。或者…是的,现在我拿着我的水晶球,做了一个神奇的仪式来看看你漂亮的清理过的代码,上面有完整的错误报告,就像一个专业的我更新了一样?或者你希望我免费到你家来做你的工作吗?是的,现在我拿着我的水晶球,做了一个神奇的仪式来看看你漂亮的清理代码,上面有完整的错误报告,就像一个专业人士在更新一样?还是你希望我免费到你家来为你工作?