SiamWebCity.com รับสร้างเว็บไซต์ครบวงจร
เลือกภาษา ภาษาอังกฤษ   
หน้าแรก
web
โปรโมทเว็บ
web
รับทำเว็บไซต์
web
สอนทำเว็บ
web
Domain 299บ.
web
ติดต่อเรา
web
 
รับทำเว็บไซต์ครบวงจร รับพัฒนาแอพพลิเคชั่น สำหรับ Facebook iPad iPhone Android รับอบรมการสร้างเว็บไซต์ โปรโมทเว็บไซต์ ดูแลเว็บไซต์ แก้ไขเว็บไซต์ : เริ่มต้นติดต่อที่เรา ที่เหลือเราเป็นผู้จัดการเพื่อท่าน : เราเป็นมากกว่าเครื่องมือที่ช่วยฝ่าวิกฤตเศรษฐกิจ
รายการ
เกี่ยวกับเรา
ทำไมต้องเลือกเรา
ผลงานที่ผ่านมา
เตรียมตัวก่อนทำเว็บ
รับดูแลเว็บไซต์
แอพ Facebook iPhone
โปรแกรมmlm สำเร็จรูป
เช่าโฮสติง
บริการหลังการขาย
เงื่อนไขการรับบริการ
ร่วมงานกับเรา
คำถามที่พบบ่อย
ติดต่อเรา

ฟรีบทความ
คู่มือการใช้งาน  คู่มือการใช้งาน
VDO สอน Dreamweaver  VDO สอน Dreamweaver
Bitcoin บิทคอยน์  Bitcoin บิทคอยน์
PHP MySQL  VDO  เบื้องต้น  PHP MySQL VDO เบื้องต้น
PHP MySQL  เกร็ดความรู้  PHP MySQL เกร็ดความรู้
jQuery  jQuery
HTML5  HTML5
ASP net   MS SQL  ASP net MS SQL
facebook app  facebook app
JSP  JSP
Oracle  Oracle
CSS  CSS
Google  Google
iphone ipad iphone itune ios  iphone ipad iphone itune ios
SEO  SEO
SQL Server  SQL Server
AJAX  AJAX
รดน้ำอัตโนมัติ  สปริงเกอร์  รดน้ำอัตโนมัติ สปริงเกอร์
คอมพิวเตอร์   อินเตอร์เน็ต  คอมพิวเตอร์ อินเตอร์เน็ต
JavaScripts  JavaScripts
cloud computing  cloud computing
xhtml  xhtml
Photoshop  Photoshop
RSS Feed  RSS Feed
wordpress  wordpress
Computer  Computer
MLM ขายตรง ขยายสายงาน  MLM ขายตรง ขยายสายงาน
NUTT's blog  NUTT's blog
ทีวีดิจิตอล DVB T2  ทีวีดิจิตอล DVB T2
Bootstrap CSS  Bootstrap CSS

รับสอน PHP, MySQL, HTML, CSS, Javascripts, FTP, Dreamweaver,PHPMyAdmin, Appserv, WMSEVER, php-Nuke , Joomla, SMF, Oscommerce, Phpbb, Paypal, Adwordsมาเรียนการสร้างเว็บกัน
บริการสอน แนะนำ Adwords , PHP, MySQL, HTML, FTP, SMF, PHPMyAdmin, Dreamweaver, Oscommerce, Photoshop, Flash...

test speed
Display Pagerank
ดูสถิติเว็บไซต์

How To Insert Multiple Rows Using GridView



ASP.net & MS SQL > How To Insert Multiple Rows Using GridView


refer: http://wordpressblog.calliarc.com/?p=1006
http://www.daniweb.com/forums/thread133010.html#
Introduction
ASP.NET GridView control is one of the most popular control when it comes to displaying and editing tabular data. However, when it comes to inserting data the GridView has very little to offer. Using a technique as illustrated in my article titled Inserting a New Row in GridView you can insert a single record using EmptyDataTemplate of the GridView. However, what if you want to insert multiple rows using GridView? In real world cases developers often require such a mechanism. Though there is no out of the box answer to this problem this article is going to demonstrate a possible solution. Read on…

Example Scenario

Have a look at the following figure that shows part of a web form.

The web form consists of a GridView control and two buttons. The interesting part is that the GridView is showing five rows that are empty. The user can enter data in those five rows and then click on “Save All” button to save the data in the database. Clicking on the “CLear Grid” will clear the entered data.

GridView and data source

By design the GridView control is a data bound control. That means it always requires some data source to bind with. It cannot be used in unbound fashion. In order to display empty rows in the GridView you need to have a data source that contains empty items. Remember that there is a difference between “empty data source” and “data source with empty rows”. Once you have such a data source you can bind it with grid so as to render its rows. Accepting data from the user is just a matter of creating template columns.

Example

To illustrate how all this works create a new web site using Visual Studio. Add a new class to the web site named Customers. The following code shows the Custoemrs class:

public class Customer
{
    private string strCustomerID;
    private string strCompanyName;
    private string strContactName;
    private string strCountry;

    public string CustomerID
    {
        get
        {
            return strCustomerID;
        }
        set
        {
            strCustomerID = value;
        }
    }

    public string CompanyName
    {
        get
        {
            return strCompanyName;
        }
        set
        {
            strCompanyName = value;
        }
    }

    public string ContactName
    {
        get
        {
            return strContactName;
        }
        set
        {
            strContactName = value;
        }
    }

    public string Country
    {
        get
        {
            return strCountry;
        }
        set
        {
            strCountry = value;
        }
    }

}

The Customer class consists of four private variables and four public properties viz. CustomerID, CompanyName, ContactName and Country – that encapsulate them. We use a generic List of Customer objects to bind with the GridView. We opted for generic collection over DataSet or DataTable so as to make our application lightweight.

Now drag and drop a GridView and two buttons as shown in the above figure. Add four TemplateField columns to the GridView and set their HeaderText property to Customer ID, Company Name, Contact Name and Country respectively. Design all the four template columns to have one textbox in the ItemTemplate. (see below).

Open the data bindings editor for the textboxs and bind them with CustomerID, CompanyName, ContactName and Country columns respectively.

Remember that we are binding Text property of the textboxes with the properties of the Customer class.

Go in the code behind of the web form and create a private method called BindGrid().

private void BindGrid()
{
List<Customer> items = new List<Customer>(5);
for (int i = 0; i < 5; i++)
{
Customer c = new Customer();
items.Add(c);
}
GridView1.DataSource = items;
GridView1.DataBind();
}

The BindGrid() method creates a generic List of customers with capacity of five elements. It then runs a for loop to create five objects of Customer class. The List is then bound with the GridView. Since we just want to insert new records we need not set any properties of the Customer class. Had it been an update operation you would have set the properties of Customer objects to the appropriate values from the database.

The BindGrid() method is called from two places – Page_Load event handler and Click event handler of “Clear Grid” button.

protected void Page_Load(object sender,
EventArgs e)
{
        if(!IsPostBack)
        {
            BindGrid();
        }
}
protected void Button2_Click(object sender,
EventArgs e)
{
        BindGrid();
}

The main job of inserting the entered data goes inside the Click event of “Save All” button. We also need few of helper methods namely BeginAdd(), AddCustomer() and CompleteAdd().

The BeginAdd() method looks as shown below:

SqlConnection cnn = new SqlConnection
("data source=.;initial catalog=northwind;
user id=sa;password=sa");
SqlCommand cmd = new SqlCommand();

private void BeginAdd()
{
cnn.Open();
SqlTransaction tran= cnn.BeginTransaction();
cmd.Connection = cnn;
cmd.Transaction = tran;
cmd.CommandText = "insert into customers
(customerid,companyname,contactname,country)
values(@custid,@company,@contact,@country)";
SqlParameter p1 = new SqlParameter
("@custid",SqlDbType.VarChar);
SqlParameter p2 = new SqlParameter
("@company", SqlDbType.VarChar);
SqlParameter p3 = new SqlParameter
("@contact", SqlDbType.VarChar);
SqlParameter p4 = new SqlParameter
("@country", SqlDbType.VarChar);
cmd.Parameters.Add(p1);
cmd.Parameters.Add(p2);
cmd.Parameters.Add(p3);
cmd.Parameters.Add(p4);
}

The code declares a connection and command at the class level. The BeginAdd() method establishes a connection with the Northwind database and initiates a transaction. In our example we insert all the records as a single transaction. You may omit the transactional operation if you don’t need it. The code then configures Connection, Transaction and CommandText properties of the command object. The CommandText property specifies an INSERT statement that inserts a record to Customers table of the Northwind database. The code then adds four parameters to the command object. The BeginAdd() method needs to be called before actual INSERT operation begins.

The actual INSERT operation is carried out by another method called AddCustomer().

private void AddCustomer(string custid, string company,
string contact, string country)
{
try
{
cmd.Parameters[0].Value = custid;
cmd.Parameters[1].Value = company;
cmd.Parameters[2].Value = contact;
cmd.Parameters[3].Value = country;
cmd.ExecuteNonQuery();
}
catch
{
cmd.Transaction.Rollback();
}
}

The AddCustomer() method accepts four parameters representing customer ID, company name, contact name and country. It then sets the respective parameter values of SqlCommand object we configured in BeginAdd() method earlier. Then ExecuteNonQuery() method of the command object is called. The catch block traps any exceptions occured during the INSERT operation and calls Rollback() method of the transaction object. The AddCustomer() method is called multiple times depending on the rows entered by the user.

The CompleteAdd() method commits the transaction.

private void CompleteAdd()
{
try
{
cmd.Transaction.Commit();
Label1.Text = "Customers added successfully!";
}
catch(Exception ex)
{
Label1.Text = "Error completing the operation!";
}
finally
{
cnn.Close();
}
}

The ComplateAdd() method calls Commit() method of transaction object and displays a success or failure message. Finally, it closes the connection that was opened in BeginAdd() method.

The BeginAdd(), AddCustomer() and CompleteAdd() methods are used in the click event handler of “Save All” button.

protected void Button1_Click(object sender,
EventArgs e)
{
BeginAdd();
foreach (GridViewRow row in GridView1.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
string custid = ((TextBox)row.FindControl
("TextBox1")).Text;
string company = ((TextBox)row.FindControl
("TextBox2")).Text;
string contact = ((TextBox)row.FindControl
("TextBox3")).Text;
string country = ((TextBox)row.FindControl
("TextBox4")).Text;
if (custid != "")
{
AddCustomer(custid, company, contact, country);
}
}
}
CompleteAdd();
}

The click event handler of the button calls the BeginAdd() method. It then starts iterating through the rows of the GridView. With each iteration it extracts the values from the four textboxes using FindControl() method. We assume that if CustomerID is entered then that record is to be added to the database. You can add extra validations here. The AddCustomer() method is then called by passing newly entered customer ID, company name, contact name and country. Finally, ComplateAdd() method is called to complete the insert operation.



Short URL click! Facebook Share
<< Back : เข้าชม 12,462 ครั้ง : ขึ้นไปด้านบน
รับโพสเว็บ รับจ้างโพสเว็บบอร์ด รับโพสเว็บไซด์ webboard Seeding รับจ้างโพสต์ โปรโมทเว็บไซต์ webUB.com



รับทำเว็บไซต์, ทำเว็บ, สร้างเว็บไซต์, รับทำเว็บ, รับออกแบบเว็บ, รับเขียนเว็บ, ออกแบบเว็บ, เว็บดีไซน์, รับสร้างเว็บ, เขียนเว็บไซต์, เว็บ, บริษัท ทำเว็บ, บริษัท สร้างเว็บ, บริษัท ออกแบบเว็บ, บริษัท เขียนเว็บ, ผลงานเว็บ, โฮสติ้ง,Design,Web,เว็บ,เว็บ โฮสติ้ง,เว็ป,โฮสติ้ง ราคาถูก,เว็บไซต์,จดโดเมน,เว็บโฮสติ้ง,Web Download,Web PHP,Flash MX,Graphic Design,Search Engine, Web, Design, Web Host,Web Hosting,Web Page,เขียนเว็บ,เขียนเว็บไซต์,จัดทำเว็บ,จัดทำเว็บไซต์,ทำเว็บ,ทำเว็บไซต์, โปรโมทเว็บ,ฟรี เว็บ,รับเขียนเว็บ,รับทำเว็บ,รับทำเว็บไซต์,รับออกแบบเว็บ,รับออกแบบเว็บไซ ต์,เว็บ สำเร็จรูป,เว็บดีไซน์,เว็ปไซต์, สร้างเว็บ,สร้างเว็บไซต์,ออกแบบ เว็บไซต์,ออกแบบเว็บ,ออกแบบเว็บไซต์,เขียนโปรแกรม,บริการเว็บโฮสติ้ง,ประชา สัมพันธ์เว็บ,รับจัดทำเว็บไซต์,รับสร้างเว็บ,เว็บโปรแกรม,เว็บสวย, บริการจัดทำเว็บไซต์,บริษัทรับจัดทำเว็บไซต์,ให้บริการจัดทำเว็บไซต์, มีประสบการณ์การจัดทำเว็บไซต์, งานบริการเว็บไซต์,ผลงานการเว็บไซต์,ผลงานเว็บไซต์,เว็บไซต์,เว็บไซต์ ปรัชญา "พอเพียง",เว็บไซต์ราคาที่ยุติธรรม,เว็บไซต์ระบบมาตรฐาน,เว็บไซต์ทุกงาน, เว็บไซต์ธุรกิจ, โปรโมทเว็บ,ประชาสัมพันธ์เว็บ,เว็บ,ออกแบบเว็บ,เขียนโปรแกรม,สร้างเว็บ,ออก แบบเว็บไซต์,ทำเว็บ,เว็บสวย,เขียนเว็บไซต์,ทำเว็บไซต์,รับทำเว็บ,รับออกแบบ เว็บ,เขียนเว็บ,รับเขียนเว็บ,รับทำเว็บไซต์,รับจัดทำเว็บไซต์,เว็บโฮสติ้ง, จัดทำเว็บ,เว็บโปรแกรม,เว็บไซต์,เว็บดีไซน์,รับออกแบบเว็บไซต์,สร้างเว็บไซ ต์,เว็บ,จดโดเมน,บริการเว็บโฮสติ้ง,จัดทำเว็บไซต์,โปรแกรมคอมพิวเตอร์

รับทำเว็บไซต์ : โปรโมทเว็บไซต์ : รับเขียนโปรแกรม : สอนสร้างเว็บ : จด Domain name 299บ. : เช่า Hosting : บริการดูแลเว็บไซต์ : รับซื้อ ขาย Rolex : Sitemap.xml
สปริงเกอร์

ข้อสอบ คลังข้อสอบ ระบบข้อสอบ โปรแกรมข้อสอบ ฟรี Exam.in.th
เว็บไซต์ในเครือข่าย: SiamWebCity.com webUB.com EXAM.in.th ข้อสอบ.ไทย ไอเดียแต่งบ้าน homeEST.com
Copyright © 2009-2019 SiamWebCity.COM. ® All rights reserved. หมายเลขทะเบียนประกอบพานิชย์อิเลคทรอนิกส์ : 0447314800321
E-mail, Google Talk : admin [at] siamwebcity.com, Skype: SiamWebCity.com
ขึ้นไปด้านบน