使用OleDbConnection保存图像. [英] Saving Image using OleDbConnection.

查看:80
本文介绍了使用OleDbConnection保存图像.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好专家,

我在SQL Server中有一个表,可以说具有以下属性的SMUser.

Hello Experts,

I have a table in SQL server let say SMUser with following attribute.

UserID		varchar(20)		
UserName	nvarchar(40)	
Sex			int	Checked
Passwd		varchar(110)	
EMail		varchar(110)	
Photo		image			
Rights		int				
JoinDate	varchar(10)		




最初,我使用SQL Server,这很好.我的意思是我能够操纵数据(插入,更新,删除,读取).我正在使用代码如下所示插入记录.




Initially I was working with SQL Server, and it was good. I mean i was able manipulate the data(Insert, Update, Delete, Read). i was using the code to Insert the record as shown below.

try
           {
               dbConn = new SqlConnection(strConnStr);
               dbConn.Open();
           }
           catch (Exception eX)
           {
               MessageBox.Show("Unable to open connection " + eX.Message);
               return;
           }

           string strQuery = "insert into Users ( UserID, UserName, Sex, Passwd, EMail, Rights, Photo, JoinDate ) values  ( @UserID, @UserName, @Sex, @Passwd, @EMail, @Rights, @Photo, @JoinDate)";
           //Initialize SqlCommand object for insert.
           SqlCommand dbCmd = new SqlCommand(strQuery, dbConn);

           dbCmd.Parameters.Add(new SqlParameter("@UserID", (object)strID));
           dbCmd.Parameters.Add(new SqlParameter("@UserName", (object)strName));
           dbCmd.Parameters.Add(new SqlParameter("@Sex", (object)nSex));
           dbCmd.Parameters.Add(new SqlParameter("@Passwd", (object)UserServices.GetMd5Hash(strPass1)));
           dbCmd.Parameters.Add(new SqlParameter("@EMail", (object)strEMail));
           dbCmd.Parameters.Add(new SqlParameter("@Rights", (object)uRights));
           dbCmd.Parameters.Add(new SqlParameter("@Photo", (object)imgArr));
           dbCmd.Parameters.Add(new SqlParameter("@JoinDate", (object)strJDate));

           strErr = "";
           //Execute insert query.
           try
           {
               dbCmd.ExecuteNonQuery();
           }
           catch (Exception eX)
           {
               strErr = "Unable to perform Database operation[" + eX.Message + "]";
               MessageBox.Show("Failed while adding user " + strErr);
           }
           dbConn.Close();




然后,为了支持多个数据库,我从本地SQL DB OLE DB提供程序更改了Connection.结果就是这样的功能.




then to support multiple database i have changed the Connection from native SQL DB OLE DB Provider. and this function turned out to be like.

string strQuery = "INSERT INTO SMUser (UserID, UserName, Sex, Passwd) VALUES (@UserID, @UserName, @Sex, @Passwd)";
            OleDbConnection dbConn = null;
            try
            {
                dbConn = new OleDbConnection(strConnStr);
                dbConn.Open();
            }
            catch ( Exception eX)
            {
                MessageBox.Show("Unable to open connection " + eX.Message);
                return;
            }
            //Initialize OleDbCommand object for insert.
            OleDbCommand dbCmd = new OleDbCommand ( strQuery, dbConn);
            //We are passing Original Image Path and Image byte data as sql parameters.
            dbCmd.Parameters.Add(new OleDbParameter("@UserID", (object)strID));
            dbCmd.Parameters.Add(new OleDbParameter("@UserName", (object)strName));
            dbCmd.Parameters.Add(new OleDbParameter("@Sex", (object)nSex));
            dbCmd.Parameters.Add(new OleDbParameter("@Passwd", (object)strEMail));
            dbCmd.Parameters.AddWithValue("@EMail", (object)strEMail);
            dbCmd.Parameters.AddWithValue("@Photo", (object)imgArr);
            dbCmd.Parameters.AddWithValue("@Rights", (object)uRights.ToString());
            dbCmd.Parameters.AddWithValue("@JoinDate", (object)strJDate);
            try
            {
                
                bErr = false;
                dbCmd.ExecuteNonQuery();
            }
            catch (Exception eX)
            {
                MessageBox.Show ( "Unable to perform Database operation[" + eX.Message + "]" );
                bErr = true;
            }
            
            dbConn.Close();
            MessageBox.Show( strMsg );



现在,当我插入一条记录时,出现一条错误消息,指出必须声明标量变量@UserID

为什么得到这个,我试图用薄而厚的玻璃看,但是可以找到,

恶作剧.
prateek.



Now when i Insert a record get an error saying that Must declare the scalar varibale @UserID

why i am getting this, i have tried to see with thin and thick glass, but could find,

thnaks.
prateek.

推荐答案

检查对象:
Check your object:
dbCmd.Parameters.Add(new OleDbParameter("@UserID", (object)strID));


如果strId为null,则会出现错误.


If strId is null, you could get the error.


这篇关于使用OleDbConnection保存图像.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆