不会C#,也不会SqlServer,目前想使用C#向SqlServer插入图片,但是不知道该怎么写,请那位给一个例子!不胜感激!
解决方案 »
- 对视频进行截图 然后讲截图在pictureBox1中显示
- 如何将多个只有sheet1的Excel文件合并成一个有多个sheet的Excel文件?
- 又谁能够提供给我c#能使用到的行业(包括大分类、小分类等等)?
- 关于winform的datagriview的几个问题
- 关于Form评价后生成页面并且打印的问题
- 大家在使用Subversion的时候要绝对小心!!!
- 像Visual .Net开发环境中那种即覆盖别的窗体,又不影像其他窗体操作的窗体是怎样做的?
- 请问了:::::如何用C#写一程序让这个程序在运行时不会显示在Windows任务管理器里???????????
- c#怎么使用paypal的API
- 请问有没有C#编写asp.net的例子?
- VS2005里怎样修改配置文件里的数据库连接字符串?
- 求一Sql语句:
http://dotnet.aspx.cc/article/2a5dd7c6-a45a-48ab-a2e8-342a29f17506/read.aspx
/// 将附件上传到指定表指定行的指定字段中
/// </summary>
/// <param name="aTbName">表名</param>
/// <param name="aId">主键ID</param>
/// <param name="aImgColumne">Image字段名称</param>
/// <param name="aStream">流</param>
/// <param name="conn">数据库连接</param>
/// <returns>true-附件上传成功 false-附件上传失败</returns>
public bool UpLoad(string aTbName,string aId,string aImgColumne,
Stream aStream,SqlConnection conn)
{
SqlCommand setPtr;
SqlCommand getPtr;
int bufferLen;
SqlCommand appendToFile;
SqlParameter ptrParm;
SqlParameter offsetParm;
SqlParameter fileParm;
BinaryReader br;
int offset_ctr;
//SqlConnection conn; //conn = new Sys().GetDbConnection();
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
// 先将字段中的内容清空
setPtr = new SqlCommand("update " + aTbName + " set " + aImgColumne + "=null WHERE id = " + aId + " ", conn);
setPtr.ExecuteNonQuery(); // image 列的文本指针值
getPtr = new SqlCommand("SELECT textptr( " + aImgColumne + ") FROM " + aTbName + " WHERE id = " + aId + " ", conn); // 设置缓存的长度
bufferLen = 32768; // 设置上传文件的 sql 语句
appendToFile = new SqlCommand("UPDATETEXT " + aTbName + "."+aImgColumne+" @Pointer @Offset 0 @Bytes", conn);
// 设置上传文件的文本指针
ptrParm = appendToFile.Parameters.Add("@Pointer", SqlDbType.Binary, 16);
ptrParm.Value = getPtr.ExecuteScalar(); // 文本列中的起始位置
offsetParm = appendToFile.Parameters.Add("@Offset", SqlDbType.Int);
offsetParm.Value = 0; //
fileParm = appendToFile.Parameters.Add("@Bytes", SqlDbType.Image);
br = new BinaryReader(aStream); Byte[] buffer = br.ReadBytes(bufferLen);
offset_ctr = 0; try
{
// 上传文件
while( buffer.Length > 0)
{
fileParm.Value = buffer;
appendToFile.ExecuteNonQuery();
offset_ctr += bufferLen;
offsetParm.Value = offset_ctr;
buffer = br.ReadBytes(bufferLen);
}
}
catch(SqlException)
{
//throw ex;
return false;
}
finally
{
br.Close();
conn.Close();
}
return true;
}这是偶公用类中的一个方法,就是楼主说的这个东东
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog of = new OpenFileDialog();
if (of.ShowDialog(this) == DialogResult.OK)
{
Image img = Image.FromFile(of.FileName);
MemoryStream ms = new MemoryStream();
img.Save(ms, img.RawFormat);
string sql = "insert into Pictures (Name, Photo) Values(@Name, @Photo)";
SqlConnection cn = new SqlConnection();
cn.ConnectionString = this.txtConnect.Text;
cn.Open();
SqlCommand cm = cn.CreateCommand();
cm.CommandText = sql;
cm.Parameters.Add("@Name", SqlDbType.VarChar, 500).Value = of.FileName;
cm.Parameters.Add("@Photo", SqlDbType.Image).Value = ms.GetBuffer();
cm.ExecuteNonQuery();
}
}