人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

ASP.NET中運用數據處理插入數據注意的問題

ASP.NET中運用數據處理插入數據注意的問題

更新時間:2022-08-04 文章作者:未知 信息來源:網絡 閱讀次數:

    很多時候,我們都會習慣將數據庫連接的初始化過程交給Page_Load去做,其實這樣子有好處也有壞處,好處是單邊問題的時候,這種方法很實用,壞處就是遇到多邊的問題時,就種情況這不太好用了!例如下面的例子:

/// For Example:

<script language="C#" runat="server">
SqlConnection mySqlCon;
protected void Page_Load(Object Src,EventArgs E)
{
mySqlCon=new SqlConnection("server=localhost;uid=sa;pwd=sa;database=pubs"); //初始化過程
if (!IsPostBack)
BindGrid();
}
public void AddPublisher(Object sender, EventArgs E)
 {
String myinsertCmd = "insert into publishers ( pub_id, pub_name, city, state, country ) values (@pubid,@pubname,@city,@state,@country)";
SqlCommand mySqlCom = new SqlCommand(myinsertCmd, mySqlCon);  //初始化命令調用
//實現配套
mySqlCom.Parameters.Add(new SqlParameter("@pubid", SqlDbType.Char, 4));
mySqlCom.Parameters["@pubid"].Value = Pub_Id.Text;
mySqlCom.Parameters.Add(new SqlParameter("@pubname", SqlDbType.VarChar, 40));
mySqlCom.Parameters["@pubname"].Value = Pub_Name.Text;
mySqlCom.Parameters.Add(new SqlParameter("@city", SqlDbType.VarChar, 20));
mySqlCom.Parameters["@city"].Value = City.Text;
mySqlCom.Parameters.Add(new SqlParameter("@state", SqlDbType.Char, 2));
mySqlCom.Parameters["@state"].Value = State.Text;
mySqlCom.Parameters.Add(new SqlParameter("@country",SqlDbType.VarChar, 30));
mySqlCom.Parameters["@country"].Value = Country.Text;
//打開DB
mySqlCom.Connection.Open();
mySqlCom.ExecuteNonQuery();
Message.InnerHtml = "<b>已添加記錄</b><br/>";
mySqlCom.Connection.Close();
Pub_Id.Text = "";
Pub_Name.Text = "";
City.Text= "";
State.Text = "";
Country.Text = "";
BindGrid();
}
//子函數調用
public void BindGrid()
{
SqlDataAdapter mySqlCom = new SqlDataAdapter("select * from publishers where pub_id like '99%'", mySqlCon);
DataSet myds = new DataSet();
mySqlCom.Fill(myds, "publishers");
dgMyGrid.DataSource = myds.Tables["publishers"].DefaultView; dgMyGrid.DataBind();
}
</script>
<h2>添加一個新的發行者:</h2>
<br/>
發行者 ID 應以 99 打頭,并包含 4 位數字<br/>
發行者 ID:&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
<asp:textbox id="Pub_Id" runat="server" />姓名:&nbsp;&nbsp;
<asp:textbox id="Pub_Name" runat="server" />
城市:&nbsp;
<asp:textbox id="City" runat="server" />
<br/>
省:&nbsp;
<asp:textbox id="State" runat="server" />
國家:&nbsp;
<asp:textbox id="Country" runat="server" />
<br/>
<br/>
&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<asp:button Text="提交" OnClick="AddPublisher" runat="server" ID="Button1" /><br/>
<span id="Message" runat="server" />
<br/>
<asp:DataGrid id="dgMyGrid" runat="server" />

這樣的例子初初看起來沒有問題,調試也沒報錯,但在生成的頁面添加數據后提交時就會報錯,說什么屬性不配套之類的話。是什么原因造成的呢!其實,這就是初始化過程在頁面裝載時造成的,但這里有個問題我始終沒能搞清楚,就是既然是在頁面初始化過程已經初始化過DB實例了,按道理來講應該可以直接生成套用的啊,但好像沒有!還是要把初始化過程放到具體的函數里面才能實現!看下面:
<<script language="C#" runat="server">
  
   protected void Page_Load(Object Src,EventArgs E)
   {
   //頁面裝載過程中直接使用IF語句,其實什么也不加!
   if (!IsPostBack)
   BindGrid();
   }  
   public void AddPublisher(Object sender, EventArgs E)
    {
   string strprovider="server=localhost;uid=sa;pwd=sa;database=pubs"; //構造初始化過程
   SqlConnection mySqlCon=new SqlConnection(strprovider);
   string myinsertCmd ="insert into publishers ( pub_id, pub_name, city, state, country ) values (@pubid,@pubname,@city,@state,@country)";
   SqlCommand mySqlCom = new SqlCommand(myinsertCmd,mySqlCon);   //初始化過程實現
   mySqlCom.Parameters.Add(new SqlParameter("@pubid", SqlDbType.Char, 4));
   mySqlCom.Parameters["@pubid"].Value = Pub_Id.Text;
   mySqlCom.Parameters.Add(new SqlParameter("@pubname", SqlDbType.VarChar, 40));
   mySqlCom.Parameters["@pubname"].Value = Pub_Name.Text;
   mySqlCom.Parameters.Add(new SqlParameter("@city", SqlDbType.VarChar, 20));
   mySqlCom.Parameters["@city"].Value = City.Text;
   mySqlCom.Parameters.Add(new SqlParameter("@state", SqlDbType.Char, 2));
   mySqlCom.Parameters["@state"].Value = State.Text;
   mySqlCom.Parameters.Add(new SqlParameter("@country",SqlDbType.VarChar, 30));
   mySqlCom.Parameters["@country"].Value = Country.Text;
   mySqlCom.Connection.Open();
   mySqlCom.ExecuteNonQuery();
   Message.InnerHtml = "<b>已添加記錄</b><br>";
   mySqlCom.Connection.Close();
   Pub_Id.Text = "";
   Pub_Name.Text = "";
   City.Text= "";
   State.Text = "";
   Country.Text = "";
   BindGrid();
   }
    public void BindGrid()  子函數調用時同樣也要初始化DB連接
    {
    string strprovider="server=dev;uid=sa;pwd=pauperboyboy;database=pubs";
    SqlConnection mySqlCon=new SqlConnection(strprovider);
    SqlDataAdapter mySqlCom = new SqlDataAdapter("select * from publishers where pub_id like '99%'",mySqlCon);
    DataSet myds = new DataSet();
    mySqlCom.Fill(myds, "publishers");
    dgMyGrid.DataSource = myds.Tables["publishers"].DefaultView;
    dgMyGrid.DataBind();
    }
   </script>
   <h2>添加一個新的發行者:</h2>
   <br>
   發行者 ID 應以 99 打頭,并包含 4 位數字<br>
   發行者 ID:&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
   <asp:textbox id="Pub_Id" runat="server" />姓名:&nbsp;&nbsp;
   <asp:textbox id="Pub_Name" runat="server" />
   城市:&nbsp;
   <asp:textbox id="City" runat="server" />
   <br>
   省:&nbsp;
   <asp:textbox id="State" runat="server" />
   國家:&nbsp;
   <asp:textbox id="Country" runat="server" />
   <br>
   <br>
   &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
   <asp:button Text="提交" OnClick="AddPublisher" runat="server" ID="Button1" /><br>
   <span id="Message" runat="server" />
   <br>
   <asp:DataGrid id="dgMyGrid" runat="server" />
  </form>>

經過這樣修改后,我們才能在真正意義上實現數據的增加!但我也試了數據的刪除和更新,在頁面裝載時直接賦于其初始化DB屬性卻沒有問題,不知道是什么原因,知道的人給提個醒哦!謝謝 :)

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 封开县| 德阳市| 宁波市| 尼勒克县| 平凉市| 屏东市| 龙南县| 封丘县| 牙克石市| 大安市| 海淀区| 揭西县| 天长市| 富平县| 大埔区| 平潭县| 桃江县| 余江县| 安乡县| 高碑店市| 许昌县| 阳曲县| 宁陕县| 阿坝县| 玉林市| 武乡县| 武夷山市| 库车县| 钟祥市| 德格县| 河源市| 镇江市| 太仆寺旗| 廉江市| 乳山市| 黎川县| 吕梁市| 普陀区| 应城市| 本溪| 罗定市|