您好专家, 我在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保存图像.
发布评论