使用存储过程将数据插入SQL数据库时出现问题。 [英] Problem in Inserting data into the SQL database using Store Procedure.
本文介绍了使用存储过程将数据插入SQL数据库时出现问题。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在处理我的学期项目,我已经为其创建了一个表单供用户构建他的个人资料。但是在插入获取System.ArgumentException错误时:对象类型System中不存在映射。在线号码:101(即db1.sqlcmd.ExecuteScalar();)
这是我的代码
I am working on my semester project on which i have made a form for user to build his profile. but on inserting getting an error of System.ArgumentException: No mapping exists from object type System. on line No: 101 ( that is db1.sqlcmd.ExecuteScalar();)
HERE IS MY CODE
protected void BttnSumbit_Click(object sender, EventArgs e)
{
string message = string.Empty;
try
{
if (AppUserimgUpload.PostedFile != null)
{
FileName = Path.GetFileName(AppUserimgUpload.PostedFile.FileName);
//Save files to disk
AppUserimgUpload.SaveAs(Server.MapPath("Images/" + FileName));
}
db1.sqlcmd = new SqlCommand("uspSetUserPassword");
using (SqlDataAdapter sda = new SqlDataAdapter())
{
db1.sqlcmd.CommandType = CommandType.StoredProcedure;
db1.sqlcmd.Parameters.AddWithValue("@Password", TxtBxConfirmPassword.Text.Trim());
db1.sqlcmd.Parameters.AddWithValue("@UserID", userId);
db1.sqlcmd.Parameters.AddWithValue("@Fathername", TxtBxFathername.Text.Trim());
db1.sqlcmd.Parameters.AddWithValue("@DOB", Convert.ToDateTime(TxtBxDob.Text.Trim()).ToString("MM-dd-yyyy"));
db1.sqlcmd.Parameters.AddWithValue("@WorkPhone", TxtBxWorkPhone.Text.Trim());
db1.sqlcmd.Parameters.AddWithValue("@Avatar", FileName);
db1.sqlcmd.Parameters.AddWithValue("@AvatarPath", "images/" + FileName);
db1.sqlcmd.Parameters.AddWithValue("@OfficeProvince",DDProvince.SelectedItem.ToString());
db1.sqlcmd.Parameters.AddWithValue("@OfficeCity", DDCity.SelectedItem.Text);
db1.sqlcmd.Parameters.AddWithValue("@OfficeAddress", TxtBxOfficAdres.Text.Trim());
db1.sqlcmd.Parameters.AddWithValue("@Partyid", DDProvince.SelectedValue);
db1.sqlcmd.Parameters.AddWithValue("@PartyJoiningDate", Convert.ToDateTime(TxtBxPartyJoiningDate.Text.Trim()).ToString("MM-dd-yyyy"));
db1.sqlcmd.Parameters.AddWithValue("@Constituency", DDConstituency.SelectedItem);
db1.sqlcmd.Connection = db1.sqlcon;
db1.sqlcon.Open();
db1.sqlcmd.ExecuteScalar();
}
}
catch (Exception ex)
{
Response.Write(ex);
}
finally
{
db1.sqlcon.Close();
message = "Registration Completed, Click Ok and You Will be Redirct to the Login Page";
//Response.Redirect("CandLogin.aspx");
}
}
这是商店程序
Here is the Store Procedure
CREATE PROC uspSetUserPassword
@Password VARCHAR(20),@UserID int,@Fathername Varchar(30),@DOB date,@WorkPhone Varchar(25),@Avatar varchar(50),
@AvatarPath varchar (max),@OfficeProvince Varchar(15),@OfficeCity Varchar(15),@OfficeAddress Varchar(max),
@Partyid int,@PartyJoiningDate date,@CId int
AS
BEGIN
UPDATE TblAppUser SET UserPassword = @Password WHERE UserId = @UserID
UPDATE TblCandidateDetails SET FatherName = @Fathername , DateofBirth = @DOB , Avatar = @Avatar
, AvatarFilePath = @AvatarPath , OfficeAddress = @OfficeAddress ,City = @OfficeCity
, Proivnce = @OfficeProvince , WorkPhone = @WorkPhone Where UserId = @UserID
INSERT INTO TblBridgeCandParty (UserID,PartyID,JoiningDate) VALUES (@UserID,@Partyid,@PartyJoiningDate)
INSERT INTO TblBridgeUserConstituency (UserId,ConstituencyID) VALUES (@UserID,@CId)
END
推荐答案
你需要调用DDConstituency.SelectedItem.ToString()
而且也不需要调用.ToString(MM-dd-yyyy)
forPartyJoiningDate
参数
you need to callDDConstituency.SelectedItem.ToString()
and also no need to call.ToString("MM-dd-yyyy")
forPartyJoiningDate
parameter
db1.sqlcmd.Parameters.AddWithValue("@PartyJoiningDate", Convert.ToDateTime(TxtBxPartyJoiningDate.Text.Trim()));
这篇关于使用存储过程将数据插入SQL数据库时出现问题。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文