[英]Problem with saving data in tables in asp.net with c#
您好,我的應用程序今天遇到問題,它遇到了一個主要問題:
我將vs2008 prof與它的sql server 2005 Express Edition一起使用。
問題是,當我嘗試對一個表中的一行進行更新時,update.executeNonQuery()返回值1,這意味着已更新1行,但該行未更新。
如果我嘗試通過打開表數據並修改字段來手動修改值,則它可以工作並且可以保存,但否則不起作用。
我還嘗試在具有相同軟件套件的另一台計算機上運行它,並且同樣的事情也試圖通過IIS7運行它,並且問題沒有消失。
任何人都可以提出一些建議,或者如果有人遇到此問題,我真的需要幫助,我將不勝感激!
以后編輯:-添加了源代碼
int user_id = (int)Session["UserId"];
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
con.Open();
SqlCommand update = new SqlCommand("update profil_candidat set nume = @pnume, prenume = @pprenume, data_nasterii = @pdata_nasterii, id_oras = @pid_oras , adresa = @padresa where id_utilizator=@pid_utilizator",con);
update.Parameters.Add("pnume", SqlDbType.VarChar);
update.Parameters.Add("pprenume", SqlDbType.VarChar);
update.Parameters.Add("pdata_nasterii", SqlDbType.VarChar);
update.Parameters.Add("pid_oras", SqlDbType.VarChar);
update.Parameters.Add("padresa", SqlDbType.VarChar);
update.Parameters.Add("pid_utilizator",SqlDbType.Int);
int an = Convert.ToInt32(AnDropDownList.SelectedItem.Value);
int luna = Convert.ToInt32(LunaDropDownList.SelectedItem.Value);
int zi = Convert.ToInt32(ZiDropDownList.SelectedItem.Value);
DateTime data = new DateTime(an, luna, zi);
update.Parameters["pnume"].Value = TextBoxNume.Text;
update.Parameters["pprenume"].Value = TextBoxPrenume.Text;
update.Parameters["pdata_nasterii"].Value = data;
update.Parameters["pid_oras"].Value = DropDownList1.SelectedItem.Value;
update.Parameters["padresa"].Value = TextBoxAdresa.Text;
update.Parameters["pid_utilizator"].Value = int.Parse(Session["UserId"].ToString());
update.ExecuteNonQuery();
con.Close();
以后編輯
解決的問題似乎實際上與以下內容有關:
使用SqlCommand.Parameters ASP.NET的C#更新表
有人忘記了將表單初始化放在if(Page.IsPostBack)的頁面加載中,並且dbase沒問題,但是語句中發送的參數始終在事件中預加載...仍然感謝您的及時回答!
我上次遇到此問題是權限問題。 無論出於何種原因,SQL Server均未返回正確的錯誤消息,而是指示基礎表正在更新……即使不是。
使用與web.config中完全相同的憑據連接到SQL Express實例。 然后執行相同的查詢,看看會發生什么。
如果executeNonQuery
返回1,則它可能在某處成功更新,否則應引發異常,否則它將返回0
。 檢查web.config中的連接字符串,並驗證您的站點是否指向您認為是的數據庫。
更新 :
連接字符串Data Source=.\\SQLEXPRESS
表示您正在連接到本地主機上名為SQLEXPRESS
的SQL Server實例,因此,如果將項目部署到另一台計算機上,它將不再連接到同一.mdf。文件存儲在您的計算機上,它將使用另一台計算機上的.mdf文件。 有關使用用戶實例數據庫並從Server Management Studio連接到它的更多詳細信息,請參見MSDN博客文章。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.