簡體   English   中英

使用c#在asp.net中更新語句

[英]UPDATE STATEMENT in asp.net using c#

我正在使用帶有C#的asp.net作為代碼


   OleDbConnection cn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Documents and Settings\CJP\My Documents\Visual Studio 2005\WebSites\NewElligibleSoft\elligiblity.mdb;Persist Security Info=False");
        cn.Open();
        string sql = "UPDATE main SET s_name='"+TextBox1.Text+"',inst_code='"+DropDownList1.SelectedItem+"',ms_oms='"+Label7.Text+"',elligiblity='"+Label12.Text+"',Board='"+DropDownList5.SelectedItem+"',percentage='"+TextBox4.Text+"' WHERE elg_id = '"+DropDownList4.SelectedItem+"'";
        OleDbCommand cmd = new OleDbCommand(sql, cn);
        cmd.ExecuteNonQuery();
        cmd.Dispose();
        cn.Close();
        Response.Write("alert('DATA UPDATED')");

我收到了錯誤

cmd.ExecuteNonQuery();

標准表達式中的數據類型不匹配。

不要像代碼那樣

string connection_string="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Documents and Settings\CJP\My Documents\Visual Studio 2005\WebSites\NewElligibleSoft\elligiblity.mdb;Persist Security Info=False";
using(OleDbConnection cn = new OleDbConnection(connection_string))
{
     cn.Open();
     string sql = "UPDATE main SET s_name=?,inst_code=?,ms_oms=?,elligiblity=?,Board=?,percentage=?,amount=? WHERE elg_id =?";

     using(OleDbCommand cmd = new OleDbCommand(sql, cn))
     {
          cmd.Parameters.Add(new OleDbParameter("s_name",TextBox1.Text.Trim()));
          cmd.Parameters.Add(new OleDbParameter("inst_code",DropDownList1.SelectedItem.Value.ToString()));
          cmd.Parameters.Add(new OleDbParameter("ms_oms",Label7.Text.ToString()));
          cmd.Parameters.Add(new OleDbParameter("elligiblity",Label12.Text));
          cmd.Parameters.Add(new OleDbParameter("Board",DropDownList5.SelectedItem.Value.ToString()));
          cmd.Parameters.Add(new  OleDbParameter("percentage",DropDownList5.SelectedItem.Value.ToString()));
          cmd.Parameters.Add(new OleDbParameter(amount",DropDownList5.SelectedItem.Value.ToString()));
          cmd.Parameters.Add(new OleDbParameter("elg_id",DropDownList5.SelectedItem.Value.ToString()));
          cmd.ExecuteNonQuery();
          cn.Close();
     }
}        
 Response.Write("alert('DATA UPDATED')");

你可以嘗試DropDownList1.SelectedItem.TextDropDownList1.SelectedItem.Value

對於所有DropDownLists,這應該是相同的。

此外,您可能必須將TextBox4轉換為“百分比”的相應數據類型。

假設百分比是雙倍的,你需要類似的東西

Double.Parse(Textbox4.Text)

最后,如果您沒有向查詢發送“字符串”,那么從這些字段中刪除單引號真的很好。 這樣你就不會解析數據但仍會發送字符串信息。

刪除DropDownList4.SelectedItem周圍的單引號。 我敢打賭你的elg_id列是整數或類型的,你給它一個字符串。

話雖如此,如果您提供了錯誤文本,數據庫表結構以及其他一些信息,那么您將會感覺更好,這樣人們就不必閱讀您的想法。

OleDbConnection cn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Documents and Settings\CJP\My Documents\Visual Studio 2005\WebSites\NewElligibleSoft\elligiblity.mdb;Persist Security Info=False");
        cn.Open();
        string sql = "UPDATE main SET s_name='" + TextBox1.Text + "',inst_code='" + DropDownList1.SelectedItem.Value.ToString() + "',ms_oms='" + Label7.Text + "',elligiblity='" + Label12.Text + "',Board='" + DropDownList5.SelectedItem.Value.ToString() + "',percentage='" + float.Parse(TextBox4.Text) + "',amount='" + Label10.Text + "' WHERE elg_id = " + DropDownList4.SelectedItem.Value + "";
        OleDbCommand cmd = new OleDbCommand(sql, cn);
        cmd.ExecuteNonQuery();
        cmd.Dispose();
        cn.Close();
        Response.Write("alert('DATA UPDATED')");

這是正確的代碼


OleDbConnection cn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Documents and Settings\CJP\My Documents\Visual Studio 2005\WebSites\NewElligibleSoft\elligiblity.mdb;Persist Security Info=False");
        cn.Open();
        string sql = "UPDATE main SET s_name='" + TextBox1.Text + "',inst_code='" + DropDownList1.SelectedItem.Value.ToString() + "',ms_oms='" + Label7.Text + "',elligiblity='" + Label12.Text + "',Board='" + DropDownList5.SelectedItem.Value.ToString() + "',percentage='" + float.Parse(TextBox4.Text) + "',amount='" + Label10.Text + "' WHERE elg_id = " + DropDownList4.SelectedItem.Value + "";
        OleDbCommand cmd = new OleDbCommand(sql, cn);
        cmd.ExecuteNonQuery();
        cmd.Dispose();
        cn.Close();
        Response.Write("alert('DATA UPDATED')");

thanxx

暫無
暫無

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

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