婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > ASP.NET2.0中用Gridview控件操作數據的代碼

ASP.NET2.0中用Gridview控件操作數據的代碼

熱門標簽:上海楊浦怎么申請申請400電話 海外地圖標注門市標 地圖標注多個行程 山西防封卡電銷卡套餐 云南外呼電銷機器人系統 陜西人工外呼系統哪家好 廈門商鋪地圖標注 浙江外呼系統怎么安裝 銅川小型外呼系統運營商
其中,在數據控件方面,增加了不少控件,其中的Gridview控件功能十分強大。在本文中,將探討Gridview控件中的一些功能特性和用法,如果各位讀者對Gridview控件不大了解,可以通過《使用ASP.NET 2.0中的Gridview控件》一文,來對Gridview控件有個初步的認識。

  1、使用Gridview插入新記錄

  在Gridview控件中,可以實現插入新記錄的操作(見《使用ASP.NET 2.0中的Gridview控件》)一文,但如果想實現在Gridview中,實現在Gridview控件的最后一行,提供一個空白行給用戶輸入要輸入的記錄,那無疑是很方便的。下面將介紹其實現方法。
  首先,我們打算在讓用戶進行選擇,當用戶需要新增一記錄時,便點擊新增按鈕,之后在Gridview的最后一行里,顯示一個空白行,讓用戶按字段進行輸入,如下圖所示:
  
   
 當用戶決定不輸入新空白記錄時,可以按"cancel"按鈕返回,該空白行消失。要實現這樣的效果,我們可以充分利用Gridview的footer的模版功能進行自定義,因為有3列,所以,在每一列的footer模版中,定義如下:
復制代碼 代碼如下:

asp:Gridview ID="Gridview1" Runat="server" DataSourceID="SqlDataSource1" DataKeyNames="CustomerID" AutoGenerateColumns="False" ShowFooter="True">
Columns>
 asp:TemplateField>
  ItemTemplate>
   asp:Label ID="CustomerIDLabel" Runat="Server">%# Eval("CustomerID") %>/asp:Label>
  /ItemTemplate>
  FooterTemplate>
   asp:TextBox ID="CustomerIDTextBox" Runat="server">/asp:TextBox>
  /FooterTemplate>
 /asp:TemplateField>
 asp:TemplateField>
  ItemTemplate>
   asp:Label ID="CompanyNameLabel" Runat="Server">%# Eval("CompanyName") %>/asp:Label>
  /ItemTemplate>
  FooterTemplate>
   asp:TextBox ID="CompanyNameTextBox" Runat="server">/asp:TextBox>
  /FooterTemplate>
 /asp:TemplateField>
 asp:TemplateField>
  FooterTemplate>
   asp:DropDownList ID="ContactTitleDropDownList" Runat="server" DataSourceID="SqlDataSource2" DataTextField="ContactTitle" DataValueField="ContactTitle">
   /asp:DropDownList>
   asp:SqlDataSource ID="SqlDataSource2" Runat="server" SelectCommand="SELECT DISTINCT [ContactTitle] FROM [Customers]"
ConnectionString="server=localhost;uid=sa;password=xxx;database=northwind">
   /asp:SqlDataSource>
   asp:Button ID="Button1" Runat="server" Text="Add" OnClick="Button1_Click" />
   asp:Button ID="CancelButton1" Runat="server" Text="Cancel" OnClick="CancelButton1_Click" />
  /FooterTemplate>
 ItemTemplate>
  asp:DropDownList ID="ContactTitleDropDown" SelectedValue='%# Bind("ContactTitle") %>' Runat="Server" DataSourceID="SqlDataSource3" DataTextField="ContactTitle" DataValueField="ContactTitle" >/asp:DropDownList>
  asp:SqlDataSource ID="SqlDataSource3" Runat="server" SelectCommand="SELECT DISTINCT [ContactTitle] FROM [Customers]"
ConnectionString="server=localhost;uid=sa;password=xxxx;database=northwind" EnableCaching="True">
  /asp:SqlDataSource>
 /ItemTemplate>
 /asp:TemplateField>
/Columns>
/asp:Gridview>

  以上為Gridview的代碼,可以看到,在第一,二列的foottemplate>列中,分別提供了customerid和companyname兩個文本框以供用戶輸入,在第三列的footertemplate>列中,以dropdownlistbox的形式來顯示contracttitle.。其中,請注意第三列的footertemplate中的add和cancel兩個按鈕的,它們的事件代碼如下
復制代碼 代碼如下:

script runat="server">
void CancelButton1_Click(object sender, EventArgs e)
{
 Gridview1.ShowFooter = false;
}
void AddButton1_Click(object sender, EventArgs e)
{
 Gridview1.ShowFooter = true;
}
 //點add按鈕時,將新增的記錄更新到數據庫中去
void Button1_Click(object sender, EventArgs e)
{
 TextBox customerID = Gridview1.FooterRow.FindControl("CustomerIDTextBox") as TextBox;
 TextBox companyName = Gridview1.FooterRow.FindControl("CompanyNameTextBox") as TextBox;
 DropDownList ContactTitle = Gridview1.FooterRow.FindControl("ContactTitleDropDownList") as DropDownList;
 SqlDataSource1.InsertParameters["CustomerID"].DefaultValue = customerID.Text;
 SqlDataSource1.InsertParameters["CompanyName"].DefaultValue = companyName.Text;  
 SqlDataSource1.InsertParameters["ContactTitle"].DefaultValue=ContactTitle.SelectedValue;
 SqlDataSource1.Insert();
}
/script>

其中的cancel按鈕的事件,用來取消顯示Gridview的footer模版,因此設置showfooter屬性為false,而addbutton1按鈕,是當用戶決定新增記錄時點選的,此時將設置showfooter屬性為true,以顯示各列的foottemplate,從而達到顯示新的一個空白行的目的。

  而在更新代碼button1_click事件中,將首先使用Gridview1.footerrow.findcontrol的方法,將用戶新增的各字段的值提取出來,然后分別賦值給sqldatasource的insertparameters集合(注意要一一對應),最后使用sqldatasource的insert方法,就可以成功向數據庫增加一條新記錄了。

  另外,為了在窗體加載時,顯示數據庫northwind中customers表的數據,需要設置sqldatsource1的屬性,如下代碼:

復制代碼 代碼如下:

 asp:SqlDataSource ID="SqlDataSource1" Runat="server"
InsertCommand="INSERT INTO [Customers] ([CustomerID], [CompanyName], [ContactTitle]) VALUES (@CustomerID, @CompanyName, @ContactTitle)"
SelectCommand="SELECT top 5 [CustomerID], [CompanyName], [ContactTitle] FROM [Customers]"
ConnectionString="server=localhost;uid=sa;password=XXXXX;database=northwind">
InsertParameters>
asp:Parameter Type="String" Name="CustomerID">/asp:Parameter>
asp:Parameter Type="String" Name="CompanyName">/asp:Parameter>
asp:Parameter Type="String" Name="ContactTitle">/asp:Parameter>
/InsertParameters>
/asp:SqlDataSource>

  其中,必須設置insertcommand和selectcommand屬性,設置數據提取和插入的語句,并且要設置好insertparameters集合中,各字段的類型和名稱即可。

  2、一次性更新所有的Gridview記錄

  我們經常會遇到這樣的情況,在Gridview中列出的所有記錄中,有時要同時修改多條記錄,并且將其保存到數據庫中去。那么在Gridview中應該如何實現呢?在Gridview中,有兩種實現的方法,下面分別進行介紹:

  先來看下第一種方法,本方法是使用sqldatasource來更新所有記錄,但這個方法比較慢,因為每更新一條記錄都要建立數據連接并執行updatecommand,會影響性能。其主要代碼如下:

復制代碼 代碼如下:

script runat="server">
void Button1_Click(object sender, EventArgs e)
{
 for (int i = 0; i Gridview1.Rows.Count; i++)
 {
  GridviewRow row = Gridview1.Rows[i];
  SqlDataSource1.UpdateParameters[0].DefaultValue = ((TextBox)row.Cells[0].FindControl("TextBox2")).Text;
  SqlDataSource1.UpdateParameters[1].DefaultValue = ((TextBox)row.Cells[1].FindControl("TextBox3")).Text;
  SqlDataSource1.UpdateParameters[2].DefaultValue = Gridview1.DataKeys[i].Value.ToString();
  SqlDataSource1.Update();
 }
}
/script>
html xmlns="http://www.w3.org/1999/xhtml" >
head id="Head1" runat="server">
title>Untitled Page/title>
/head>
body>
 form id="form1" runat="server">
 div>
 asp:Gridview ID="Gridview1" Runat="server" DataSourceID="SqlDataSource1" DataKeyNames="CustomerID" AutoGenerateColumns="False">
 Columns>
 asp:TemplateField SortExpression="CustomerID" HeaderText="CustomerID">
 ItemTemplate>
  asp:TextBox Runat="server" Text='%# Bind("CustomerID") %>' ID="TextBox1">/asp:TextBox>
 /ItemTemplate>
 /asp:TemplateField>
  asp:TemplateField SortExpression="CompanyName" HeaderText="CompanyName">
  ItemTemplate>
   asp:TextBox Runat="server" Text='%# Bind("CompanyName") %>' ID="TextBox2">/asp:TextBox>
  /ItemTemplate>
 /asp:TemplateField>
 asp:TemplateField SortExpression="ContactName" HeaderText="ContactTitle">
  ItemTemplate>
   asp:TextBox Runat="server" Text='%# Bind("ContactTitle") %>' ID="TextBox3">/asp:TextBox>
  /ItemTemplate>
 /asp:TemplateField>
 /Columns>
 /asp:Gridview>
asp:SqlDataSource ID="SqlDataSource1" Runat="server"
SelectCommand="SELECT [CustomerID], [CompanyName], [ContactName], [ContactTitle] FROM [Customers]"
UpdateCommand="UPDATE [Customers] SET [CompanyName] = @CompanyName, [ContactTitle] = @ContactTitle WHERE [CustomerID] = @CustomerID"
ConnectionString="server=localhost;uid=sa;password=xxxx;database=northwind">
UpdateParameters>
asp:Parameter Type="String" Name="CompanyName">/asp:Parameter>
asp:Parameter Type="String" Name="ContactTitle">/asp:Parameter>
asp:Parameter Type="String" Name="CustomerID">/asp:Parameter>
/UpdateParameters>
/asp:SqlDataSource>
asp:Button ID="Button1" Runat="server" Text="Button" OnClick="Button1_Click" />
/div>
/form>
/body>
/html>

  在上面的代碼中,我們必須首先指定updateparameters參數集合,也就是指出要更新的是哪些字段,它們的類型是什么。之后并指出sqldatasource的updatecommand語句。而在更新按鈕button1的CLICK事件中,將以遍歷的形式,使用for循環,對Gridview中的每一行進行檢查,將每個更新了的文本框的內容放到sqldatasouce的updateparameters參數中去,最后調用sqldatasource的update方法,完成更新。

  方法2使用的是首先遍歷Gridview中的每一行,并且使用SQL語句,將要更新的內容連接起來,然后最后才使用command.ExecuteNonQuery()進行更新,效率高了,主要代碼如下:

復制代碼 代碼如下:

protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
 SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["AppConnectionString1"].ConnectionString);
 SqlCommand command = new SqlCommand("SELECT [CustomerID], [CompanyName], [ContactName], [ContactTitle] FROM [Customers]", con);
 con.Open();
 Gridview1.DataSource = command.ExecuteReader();
 Gridview1.DataBind();
 con.Close();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
 StringBuilder query = new StringBuilder();
 for (int i = 0; i Gridview1.Rows.Count; i++)
 {
  GridviewRow row = Gridview1.Rows[i];
  string value1 = ((TextBox)row.Cells[0].FindControl("TextBox2")).Text.Replace("'", "''");
  string value2 = ((TextBox)row.Cells[1].FindControl("TextBox3")).Text.Replace("'", "''");
  string value3 = Gridview1.DataKeys[i].Value.ToString();
  query.Append("UPDATE [Customers] SET [CompanyName] = '").Append(value1).Append("' , [ContactTitle] = '")
.Append(value2).Append("' WHERE [CustomerID] = '").Append(value3).Append("';\n");
 }
 SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["AppConnectionString1"].ConnectionString);
 SqlCommand command = new SqlCommand(query.ToString(), con);
 con.Open();
 command.ExecuteNonQuery();
 con.Close();
}
}

  其中要特別注意一點的是,在vs.net 2005 beta 2開始,如果你在web.config中使用了數據庫連接字符串的配置,那么應該按如下的方法去寫:
復制代碼 代碼如下:

connectionStrings>
add name="NorthwindConnectionString" connectionString="Data Source=LIAO;Initial Catalog=Northwind;User ID=sa;Password=xxxx" providerName="System.Data.SqlClient"/>
/connectionStrings>

  然后在程序中如下進行讀?。?
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["AppConnectionString1"].ConnectionString);
您可能感興趣的文章:
  • ASP.NET 2.0/3.5中直接操作Gridview控件插入新記錄
  • asp.net GridView控件鼠標移動某行改變背景顏色(方法一)
  • asp.net GridView控件中模板列CheckBox全選、反選、取消
  • asp.net GridView控件中實現全選的解決方案
  • ASP.NET GridView控件在列上格式化時間及DataFormatString使用
  • asp.net的GridView控件使用方法大全
  • asp.net中GridView控件遍歷的小例子
  • Asp.net的GridView控件實現單元格可編輯方便用戶使用
  • ASP.NET4 GridView的四種排序樣式詳解
  • ASP.NET使用GridView導出Excel實現方法
  • asp.net gridview分頁:第一頁 下一頁 1 2 3 4 上一頁 最末頁
  • ASP.NET中為GridView添加刪除提示框的方法
  • asp.net中GridView數據鼠標移入顯示提示信息
  • 如何用jQuery實現ASP.NET GridView折疊伸展效果
  • ASP.NET GridView中加入RadioButton不能單選的解決方案
  • 靈活掌握asp.net中gridview控件的多種使用方法(上)
  • 靈活掌握asp.net中gridview控件的多種使用方法(下)

標簽:西雙版納 孝感 自貢 朔州 萊蕪 許昌 常州 信陽

巨人網絡通訊聲明:本文標題《ASP.NET2.0中用Gridview控件操作數據的代碼》,本文關鍵詞  ASP.NET2.0,中用,Gridview,控件,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP.NET2.0中用Gridview控件操作數據的代碼》相關的同類信息!
  • 本頁收集關于ASP.NET2.0中用Gridview控件操作數據的代碼的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美巨大另类极品videosbest | 国产欧美一区二区精品婷婷| 欧美亚洲综合在线| 久久久久久久久久久电影| 午夜精品福利一区二区蜜股av| 欧美精品一区二区三区视频| 日韩高清电影一区| 日韩欧美你懂的| 激情av综合网| 中文字幕一区av| 中文字幕不卡在线| 成人性生交大合| 自拍偷拍欧美激情| 成人一区二区三区在线观看| 久久免费午夜影院| 国产一区二区三区电影在线观看| 欧美日韩欧美一区二区| 依依成人精品视频| 欧美撒尿777hd撒尿| 欧美一卡2卡3卡4卡| 日韩欧美成人激情| 午夜激情综合网| 在线一区二区观看| 中文字幕亚洲成人| 91在线小视频| 亚欧色一区w666天堂| 欧美群妇大交群中文字幕| 一区二区三区四区av| 欧美不卡在线视频| 欧美日韩久久不卡| 国产成人8x视频一区二区| 五月婷婷久久综合| 91精品国产高清一区二区三区 | 日韩电影免费在线观看网站| 欧美人与性动xxxx| 色综合久久综合| 国产精品一区二区三区四区| 26uuu国产在线精品一区二区| 国产91丝袜在线播放九色| 91精品国产欧美一区二区18| 国产女人18毛片水真多成人如厕| 国产成人av电影在线| 午夜精品在线视频一区| 国产偷国产偷亚洲高清人白洁 | 99久久亚洲一区二区三区青草| 欧美一级黄色片| 精品福利二区三区| 亚洲一区二区三区自拍| 色综合天天综合在线视频| 欧美日韩在线播放一区| 日韩三级免费观看| 97se亚洲国产综合在线| 精品国产一二三区| 亚洲成人激情综合网| 精品少妇一区二区三区在线视频| 91精品午夜视频| 青娱乐精品在线视频| 7777精品伊人久久久大香线蕉最新版| 国产a视频精品免费观看| 亚洲一区免费视频| 国产精品一二三四区| 91精品视频网| 一区精品在线播放| 美国毛片一区二区三区| 色婷婷av一区二区| 久久久国际精品| 人人精品人人爱| 91亚洲国产成人精品一区二区三| 97久久精品人人做人人爽 | 国内外精品视频| 日韩一级片在线播放| 日韩毛片视频在线看| 精品99999| 极品少妇xxxx偷拍精品少妇| 国产成人精品三级| 亚洲精品视频观看| 色综合久久天天| 亚洲高清免费观看| 久久国产人妖系列| 国产精品视频九色porn| 国产精品亚洲人在线观看| 中文字幕欧美激情一区| 亚洲一区在线观看免费| 欧美男男青年gay1069videost| 欧美精品黑人性xxxx| 久久精品日韩一区二区三区| 亚洲国产日韩综合久久精品| 国产成人午夜99999| 免费成人深夜小野草| 51久久夜色精品国产麻豆| 美女高潮久久久| 欧美日韩久久久久久| 成人小视频免费观看| 国产精品国产三级国产aⅴ原创| 日韩欧美一二三四区| 69久久夜色精品国产69蝌蚪网| 一本大道久久精品懂色aⅴ| 国产不卡视频一区二区三区| 精品一区二区免费看| 久久99精品久久久久婷婷| 日本在线不卡一区| 久久超碰97人人做人人爱| 国产揄拍国内精品对白| 欧美久久久久久蜜桃| 国产精品久久久久9999吃药| 99久久99久久精品免费观看| 日本韩国一区二区三区| 欧美一卡二卡三卡| 日韩av电影一区| 99麻豆久久久国产精品免费优播| 国产精品18久久久久久久久久久久 | 国产精品私人影院| 久久精品欧美日韩| 欧美激情一区在线观看| 国产欧美日韩一区二区三区在线观看| 国产人久久人人人人爽| 国产精品精品国产色婷婷| 久久久久国产精品麻豆ai换脸| 91精品福利在线| 九九九久久久精品| xvideos.蜜桃一区二区| 蜜桃视频免费观看一区| 欧美在线短视频| 久久精品国产亚洲aⅴ| 亚洲精品午夜久久久| 午夜精品福利久久久| 日韩午夜电影av| 91成人免费在线视频| 亚洲免费高清视频在线| 亚洲一区二区在线播放相泽| 久久久久久亚洲综合影院红桃| 欧美欧美午夜aⅴ在线观看| 91精品啪在线观看国产60岁| 亚洲精品在线电影| 国产精品国产三级国产aⅴ无密码| 亚洲免费在线电影| 午夜精品国产更新| 国产在线视频一区二区| 99精品欧美一区二区三区小说 | 91在线免费播放| 日韩av不卡一区二区| 国产精品视频九色porn| 亚洲一区二区精品视频| 欧美电影在线免费观看| 日韩欧美国产综合| 中文字幕在线不卡视频| 欧美日本一区二区三区四区| 色综合久久综合网| 91国产精品成人| 国产精品一区二区三区99| av一区二区三区在线| 欧美三级日本三级少妇99| 久久综合色播五月| 亚洲精品伦理在线| 国内精品在线播放| 色av成人天堂桃色av| 日韩欧美aaaaaa| 亚洲天堂网中文字| 欧美日韩免费一区二区三区| 成人综合在线网站| 99re这里都是精品| 日韩一级精品视频在线观看| 国内精品在线播放| 欧美一区二区国产| 中文字幕亚洲成人| 一区二区三区蜜桃| 美国十次综合导航| 亚洲欧美aⅴ...| 国产日韩欧美精品电影三级在线| 国产精品一级片在线观看| 一本到高清视频免费精品| 日韩一卡二卡三卡国产欧美| 中文字幕亚洲视频| 精品免费国产二区三区| 在线不卡a资源高清| 91精品婷婷国产综合久久| 久久超级碰视频| 国产精品国产三级国产三级人妇| 美国av一区二区| 欧美日本一区二区三区四区| 一区二区久久久| av一区二区三区| 欧美韩国日本一区| 韩国精品久久久| 日韩欧美国产系列| 日韩精品欧美成人高清一区二区| 在线视频一区二区三| 日本视频在线一区| 国产另类ts人妖一区二区| 日韩手机在线导航| 亚洲在线视频网站| 亚洲天堂久久久久久久| 国产精品久久久久一区| 欧美精品乱人伦久久久久久| 欧美大片一区二区| 国产一区三区三区| 精品国一区二区三区| 亚洲第一综合色| 久久国产精品露脸对白| 精品亚洲成a人|