问题描述
您好专家,
我在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.
推荐答案
dbCmd.Parameters.Add(new OleDbParameter("@UserID", (object)strID));
如果strId
为null,则会出现错误.
If strId
is null, you could get the error.
这篇关于使用OleDbConnection保存图像.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!