簡體   English   中英

使用C#將數據保存在asp.net中的表中的問題

[英]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博客文章。

在Management Studio中連接到SQL Express用戶實例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM