问题描述
- c# 截图并传到数据库 但错误找不到文件 1C
- 如下图程序 我运行到这里时可以截图 并且能够保存早debug中 但当我调试到吧图片转换为二进制流是就出错
错误是找不到这个问件 但我去debug 中看是有这个文件的啊private void buttonSnap_Click(object sender EventArgs e) { if(textBoxSnapAddrs.Text != null) { camera.snapPath = textBoxSnapAddrs.Text + @"".bmp""; camera.GrabImage(); FileStream fs = new FileStream(@""textBoxSnapAddrs.Text.bmp"" FileMode.Open); Byte[] by = new byte[fs.Length]; fs.Read(by 0 Convert.ToInt32(fs.Length)); fs.Close(); using (SqlConnection conn = new SqlConnection(con)) { conn.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = ""insert into patient(p_image) values(@textBoxSnapAddrs.Text.bmp)""; SqlParameter par = new SqlParameter(""@textBoxSnapAddrs.Text.bmp"" SqlDbType.Image); par.Value = by; cmd.Parameters.Add(par); int t = (int)(cmd.ExecuteNonQuery()); conn.Close(); } MessageBox.Show(""保存成功!""); 求大神解答 我刚刚学c# 好多东西不太懂
解决方案
你看一下你的文件名是否为:textBoxSnapAddrs.Text.bmp
因为你在程序中有这行代码:
FileStream fs = new FileStream(@""textBoxSnapAddrs.Text.bmp"" FileMode.Open);
解决方案二:
FileStream fs = new FileStream(@""textBoxSnapAddrs.Text.bmp"" FileMode.Open); ""textBoxSnapAddrs.Text.bmp"" 这里只是个字符串并不是文件的路径名称.
解决方案三:
运行shell脚本提示找不到该文件的错误,解决办法
解决方案四:
保存二进制 最好不要用sql 的形式进行插入保存
最好使用参数 或者存储过程的形式保存 否则中间保存过程sql 会以字串的形式写入 直接阶段二进制字串
解决方案五:
应该是你的文件名写错了,你可以定义一个文件路径变量在其他地方直接调用该变量即可:
string picPath = textBoxSnapAddrs.Text + @"".bmp"";
代码修改之后为:
private void buttonSnap_Click(object sender EventArgs e)
{
if(textBoxSnapAddrs.Text != null)
{
string picPath = textBoxSnapAddrs.Text + @"".bmp"";//新加
camera.snapPath = picPath;//修改 camera.GrabImage(); FileStream fs = new FileStream(picPath FileMode.Open);//修改 Byte[] by = new byte[fs.Length]; fs.Read(by 0 fs.Length);//修改 fs.Close(); using (SqlConnection conn = new SqlConnection(con)) { SqlCommand cmd = conn.CreateCommand();//新加 cmd.CommandText = ""insert into patient(p_image) values(@textBoxSnapAddrs);"";//修改 SqlParameter par = new SqlParameter(""@textBoxSnapAddrs"" SqlDbType.Image by);//修改 cmd.Parameters.Add(par); conn.Open();//新加 int t = (int)(cmd.ExecuteNonQuery()); conn.Close(); } if(t > 0) { MessageBox.Show(""保存成功!""); } else { MessageBox.Show(""保存失败!""); }
时间: 2025-01-01 16:59:44