这个是打开一个文件夹中的图片 然后存到数据库 我用的是windows验证 求大神教怎么改正

asasdq 2015-06-26 10:28:47
“System.InvalidOperationException”类型的未经处理的异常在 System.Data.dll 中发生
其他信息: ExecuteNonQuery: CommandText 属性尚未初始化

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
using System.ComponentModel;
using System.Windows.Forms;
using Microsoft.Win32;
using System.Drawing;

namespace WindowsFormsApplication9
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
static string path1;

private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog open = new OpenFileDialog();
open.Title = "选择一张相片";
open.InitialDirectory = @"E:\少女时代\图片";
open.Filter = "图像格式|*.jpg;*.bmp;*.gif;*.png";

if (open.ShowDialog() == DialogResult.OK)
{
path1 = open.FileName;
textBox1.Text = path1;
Bitmap im = new Bitmap(Image.FromFile(open.FileName), 210, 212);
pictureBox1.Image = im;
}
else
return;
}

private void button2_Click(object sender, EventArgs e)
{
textBox1.Text = path1;
FileStream img = new FileStream(path1, FileMode.Open, FileAccess.Read);
Byte[] imgbyte = new Byte[img.Length];
img.Read(imgbyte, 0, imgbyte.Length);
img = null;
string im = "im into image(img)values('{0}')";
im = string.Format(im
, img);
string constr = @"Data Source=.\sqlexpress;Initial Catalog=sss;Integrated Security=True;Pooling=False";
SqlConnection connection = new SqlConnection(constr);
SqlCommand cmd = connection.CreateCommand();
connection.Open();
cmd.Parameters.Add("@image", SqlDbType.Image).Value = imgbyte;
cmd.ExecuteNonQuery(); //错误代码
connection.Close();
MessageBox.Show("保存成功!");
}
}
}





(这个是我建的数据库 不知道对不对)
...全文
134 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2015-06-26
  • 打赏
  • 举报
回复
还有,不会SQL语句 那么就别一开始就研究什么高大上的存文件,存图片之类的复杂功能了 先研究研究存几个int型,string型的变量到数据库的字段里 再读出来 然后改用参数化传递看怎么传 都研究明白了,再弄图片也就相对简单的多了 否则就不是摸着石头过河,而是根本不管石头在哪就直接跳进河里,没头没脑
於黾 2015-06-26
  • 打赏
  • 举报
回复
对SQL语句不了解,那就去了解 不会SQL语句,根本没法做数据库开发的 说起来简单,就是insert into table (字段1,字段2) values (值1,值2) 其中如果传image对象必须用参数化方式传值,不能拼接进字符串里去 道理很简单,但是你必须自己先理解,否则出了任何小问题,你既不会调试也不会改
asasdq 2015-06-26
  • 打赏
  • 举报
回复
麻烦大神说一下怎么传sql语句 我对sql语句不太了解
asasdq 2015-06-26
  • 打赏
  • 举报
回复
按照你说的那么改还是不对 错误提示还是一样的问题
於黾 2015-06-26
  • 打赏
  • 举报
回复
没sql语句,光有个参数,你执行啥??
於黾 2015-06-26
  • 打赏
  • 举报
回复
SqlCommand cmd = connection.CreateCommand(); 你这是建立了一个空的SqlCommand 对象,根本没把sql语句传进去啊
  • 打赏
  • 举报
回复
 string im = "im into image(img)values('{0}')";
            im = string.Format(im
                , img);
改成下面的,其他地方不需要改,你本来就是参数化的
string im = "im into image(img)values(@image)";
asasdq 2015-06-26
  • 打赏
  • 举报
回复
string im = "im into image(img)values('{0}')"; im = string.Format(im , img); 这段代码是没有的 我忘了说

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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