Microsoft Showcase

http://www.microsoft.com/showcase/ko/kr/default.aspx

새항목 추가에서 데이터집합을 만듭니다.

image

 

서버탐색기에서 엑세스하고자하는 DataSet1.xsd 에다가 테이블을 끌어옵니다.

image

 

image

 

DataSet1TableAdapters.CustomersTableAdapter adater = new DataSet1TableAdapters.CustomersTableAdapter();

DataSet1.CustomersDataTable dt = adater.GetData();
//foreach (var item in dt)
//{
// Response.Write(item.CompanyName+"<br>");

//}
this.DataList1.DataSource = dt;
this.DataList1.DataBind();

 

DataList에 바인딩해보기

image

 

잘나온다.!

image

 

 

특정 행만 가져오기

 

image

image

image

 

image

이름을 지정하고

image

image

image

 

 

/// <summary>
/// customerID 를 이용해서 하나의 Customers 불러옵니다.
/// </summary>
/// <param name="customerID"></param>
private void GetCustomersData(string customerID)
{
    DataSet1.CustomersDataTable dt = adater.GetDataByCustomers(customerID);
    if (dt.Count > 0)
    {
        Response.Write("ALFKI 회사의 이름은 :" + dt[0].CompanyName);
    }
}

수정

DataSet1.CustomersDataTable dt = adater.GetDataByCustomers(customerID);
if (dt.Count > 0)
{
    dt[0].CompanyName = "kojaedoo Company";
}
this.adater.Update(dt);

 

image

 

추가

DataSet1.CustomersDataTable dt = new DataSet1.CustomersDataTable();
DataSet1.CustomersRow row =  dt.NewCustomersRow();
row.CustomerID = "KJD";
row.CompanyName = "New kojaedoo Company";
row.ContactName = "kojaedoo";
row.ContactTitle = "고객센터";
// .. 등등삽입

dt.AddCustomersRow(row);

this.adater.Update(dt);

image

 

 

삭제

특정행 가져오기에서 처럼 쿼리구성 마법사를 실행합니다. 여기서 Delete 선택

image

 

image

 

image

 

Delete Query가 추가 되었습니다.

image

 

 

 

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication2
{
    public partial class _Default : System.Web.UI.Page
    {
        //ALFKI

        DataSet1TableAdapters.CustomersTableAdapter adater = new DataSet1TableAdapters.CustomersTableAdapter();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                GetCustomersData();
                //UpdateCustomers("ALFKI");
                //NewCustomers();
            }
        }

        /// <summary>
        /// Customers 리스트를 불러옵니다.
        /// </summary>
        private void GetCustomersData()
        {

            DataSet1.CustomersDataTable dt = adater.GetData();
            //foreach (var item in dt)
            //{
            //    Response.Write(item.CompanyName+"<br>");

            //}
            this.DataList1.DataSource = dt;
            this.DataList1.DataBind();
        }

        /// <summary>
        /// customerID 를 이용해서 하나의 Customers 불러옵니다.
        /// </summary>
        /// <param name="customerID"></param>
        private void GetCustomersData(string customerID)
        {
            DataSet1.CustomersDataTable dt = adater.GetDataByCustomers(customerID);
            if (dt.Count > 0)
            {
                Response.Write("ALFKI 회사의 이름은 :" + dt[0].CompanyName);
            }
        }

        /// <summary>
        /// Customers를 수정합니다.
        /// </summary>
        /// <param name="customerID"></param>
        private void UpdateCustomers(string customerID)
        {
            DataSet1.CustomersDataTable dt = adater.GetDataByCustomers(customerID);
            if (dt.Count > 0)
            {
                dt[0].CompanyName = "kojaedoo Company";
            }
            this.adater.Update(dt);
        }

        /// <summary>
        /// Customers를 삭제합니다.
        /// </summary>
        /// <param name="customerID"></param>
        private void DeleteCustomers(string customerID)
        {
            int i = this.adater.DeleteQueryCustomerID(customerID);
            Response.Write(i.ToString() + "개가 삭제되었습니다.");
        }

        /// <summary>
        /// 새로운 Customers 를 만듭니다.
        /// </summary>
        private void NewCustomers()
        {
            DataSet1.CustomersDataTable dt = new DataSet1.CustomersDataTable();
            DataSet1.CustomersRow row =  dt.NewCustomersRow();
            row.CustomerID = "KJD";
            row.CompanyName = "New kojaedoo Company";
            row.ContactName = "kojaedoo";
            row.ContactTitle = "고객센터";
            // .. 등등삽입
            
            dt.AddCustomersRow(row);

            this.adater.Update(dt);

        }
    }
}

아래는 Person 의 행을 클릭하면 하단의 “직업이력” “학교”의 정보를 프로시저를 이용해서 한번에 들고 온다.

 

image

 

데이터베이스 구조

imageimage

 

프로시저 만들기(비주얼 스튜디오 2010)

image

image

 

image

실행하기를 클릭하면 파라메터 부분에 임의의 값을 넣어서 프로시저를 확인할 수 있다

image

실행된 상태 (이쁘게 좀 나오지 )

image

 

CS. 코드

코드는 별다른거 없고

NextResult(); 를 이용해서 다음레코드 셋으로 이동한다. 프로시저에서

image 

와 같이 두개의 값을 반환하기 때문이다.

 

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace TestWinForm
{
    public partial class Form1 : Form
    {
        string dbconn = "Data Source=디비위치;Initial Catalog=TEST_DB;Persist Security Info=True;User ID=kojaedoo;Password=비밀번호";
        public Form1()
        {
            InitializeComponent();
        }


        private void Form1_Load(object sender, EventArgs e)
        {
            //기본 Person 가지고 오기
            SqlConnection sqlConnection1 = new SqlConnection(dbconn);
            sqlConnection1.Open();
            SqlCommand cmd = new SqlCommand();
            cmd.CommandText = "SELECT * FROM Person";
            cmd.CommandType = CommandType.Text;
            cmd.Connection = sqlConnection1;
            SqlDataReader rs = cmd.ExecuteReader(CommandBehavior.CloseConnection);

            BindingSource bs = new BindingSource();
            bs.DataSource = rs;
            
            this.dgvPerson.DataSource = bs;

            rs.Close();
            sqlConnection1.Close();
        }



        private void dgvPerson_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            //Person 클릭했을때 첫번째 가져오기
            int PostID = int.Parse(dgvPerson[0, e.RowIndex].Value.ToString());
            //프로시져로 값 다른정보 가져오기
            GetPersonInfo(PostID);

        }

        private void GetPersonInfo( int PersonID )
        {
            //기존 바인딩 날리기
            this.dgvSchool.Rows.Clear();
            this.dgvJob.Rows.Clear();

            SqlConnection sqlConnection1 = new SqlConnection(dbconn);
            sqlConnection1.Open();
            SqlCommand cmd = new SqlCommand();
            cmd.CommandText = "SP_TEST";
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@PersonID", SqlDbType.Int);            
            cmd.Connection = sqlConnection1;

            cmd.Parameters["@PersonID"].Value = PersonID; //프로시저 파라메터 값

            SqlDataReader rs = cmd.ExecuteReader();
            //Job
            while (rs.Read())
            {
                DataGridViewRowCollection rows = this.dgvJob.Rows;
                rows.Add( rs["JobName"]);

            }           

            rs.NextResult(); //다음레코드로 이동

            //School
            while (rs.Read())
            {              
                DataGridViewRowCollection rows = this.dgvSchool.Rows;
                rows.Add(rs["SchoolName"]);

            }
            sqlConnection1.Close();
        }

    }
}

서로 다른 데이터베이스의 테이블의 값을 넣을때 트렌젝션 처리

에러메세지:

분산 트랜젝션 관리자(MSDTC)의 네트워크 액세스가 활성화되지 않았습니다. 구성 요소 서비스 관리 도구를 사용하여 MSDTC 보안 구성에서 DTC의 네트워크 액세스를 활성화하십시오.

 

해결방법

image

 

image

 

image

 

image

위와 같이 했는데도 방화벽때문에 안될떼

방화벽 해제

image

image

OLEDB version

 /// <summary>
 /// 데이터셋 
 /// 사용법
 /// DataTable table;
 /// FamilyBook.db.Dbconn dbconn = new FamilyBook.db.Dbconn();    
 /// table= dbconn.getTable("select * from SUB_FAMILY order by ref desc,pos asc ");    
 /// System.Data.DataRowCollection rows = table.Rows;
 /// foreach (DataRow dr in rows){
 /// dr["ref"].ToString();
 ///}
 /// </summary>
 /// <param name="str">쿼리문</param>
 /// <returns>DataTable</returns>

  public DataTable  getTable(string str){     
   adapter= new OleDbDataAdapter();  
   adapter.SelectCommand = new OleDbCommand(str,conn ); 
   DataSet ds = new DataSet();
   adapter.Fill(ds);
   conn.Close();
   DataTable table= ds.Tables[0]; 
   return table;
  }

SQL version

   System.Data.SqlClient.SqlDataAdapter sqlAp = new System.Data.SqlClient.SqlDataAdapter("SELECT * FROM      SUB_FAMILY" , dbconn.GetConnection() );
   System.Data.DataTable dt  = new System.Data.DataTable();
   System.Data.DataSet ds = new System.Data.DataSet();

   sqlAp.Fill(dt);
   System.Data.DataRowCollection rows =dt.Rows;
   foreach (DataRow dr in rows){
   System.Windows.Forms.MessageBox.Show( dr["name"].ToString() );
   } 

How To Read and Write BLOB Data by Using ADO.NET with Visual C# .NET

Create the Project

1.
Add a table named MyImages to your SQL Server Northwind database. Include the following fields in your table:


Identity field that is named "ID" of type Int.


Field that is named "Description" of type VarChar with a length of 50.


Field that is named "ImgField" of type Image.

2.
Start Visual Studio .NET, and then create a new Visual C# Windows Application project.

3.
Drag two Button controls from the toolbox to the default form, Form1.

4.
In the Properties window, change the Text property of Button1 to Save to Database (from File), and then change the Text property of Button2 to Save to File (from Database).

5.
Add the following code to the top of the Code window:

using System.Data;
using System.Data.SqlClient;
using System.IO;
					

6.
Double-click Button1, and then add the following code to the Button1_Click event handler.
Note Uid <user name> must have permissions to perform these operations on the database.

{
SqlConnection con = new SqlConnection("Server=Darkover;uid=<username>;pwd=<strong password>;database=northwind");
SqlDataAdapter da = new SqlDataAdapter("Select * From MyImages", con);
SqlCommandBuilder MyCB = new SqlCommandBuilder(da);
DataSet ds = new DataSet("MyImages");

da.MissingSchemaAction = MissingSchemaAction.AddWithKey;
FileStream fs = new FileStream(@"C:\winnt\Gone Fishing.BMP", FileMode.OpenOrCreate, FileAccess.Read);

byte[] MyData= new byte[fs.Length];
fs.Read(MyData, 0, System.Convert.ToInt32(fs.Length));

fs.Close();

da.Fill(ds,"MyImages");

DataRow myRow;
myRow=ds.Tables["MyImages"].NewRow();

myRow["Description"] = "This would be description text";
myRow["imgField"] = MyData;
ds.Tables["MyImages"].Rows.Add(myRow);
da.Update(ds, "MyImages");

con.Close();

}
					

7.
Double-click Button2, and then add the following code to the Button2_Click event handler.
Note Uid <user name> must have permissions to perform these operations on the database.

{
SqlConnection con = new SqlConnection("Server=Darkover;uid=<username>;pwd=<strong password>;database=northwind");
SqlDataAdapter da = new SqlDataAdapter("Select * From MyImages", con);
SqlCommandBuilder MyCB = new SqlCommandBuilder(da);
DataSet ds = new DataSet("MyImages");

byte[] MyData= new byte[0];

da.Fill(ds, "MyImages");
DataRow myRow;
myRow=ds.Tables["MyImages"].Rows[0];

MyData =  (byte[])myRow["imgField"];
int ArraySize = new int();
ArraySize = MyData.GetUpperBound(0);

FileStream fs = new FileStream(@"C:\winnt\Gone Fishing2.BMP", FileMode.OpenOrCreate, FileAccess.Write);
fs.Write(MyData, 0,ArraySize);
fs.Close();
}
					

8.
Press F5 to compile and to run the application.

9.
Click Save to Database (from File) to load the image, C:\WinNT\Gone Fishing.bmp, into the SQL Server Image field.

10.
Click Save to File (from Database) to save the data from the SQL Server Image field back to a file.

SqlDataSource 컨트롤의 필터링을 사용하도록 설정하려면

  1. 디자인 뷰로 전환한 후 도구 상자의 데이터 탭에서 SqlDataSource 컨트롤을 페이지로 끌어 옵니다.

  2. 컨트롤을 마우스 오른쪽 단추로 클릭한 다음 스마트 태그 표시를 클릭합니다.

  3. SqlDataSource 작업 메뉴에서 데이터 소스 구성을 클릭합니다.

  4. 데이터 소스 구성 마법사의 지시에 따라 연결을 만들거나 선택하고 데이터 소스에서 데이터를 반환할 쿼리를 만듭니다. 자세한 내용은 연습: 웹 페이지의 기본 데이터 액세스를 참조하십시오.

  5. 속성 창에서 DataSourceMode 속성을 DataSet으로 설정합니다.

  6. EnableCaching 속성을 true로 설정합니다.

  7. CacheDuration 속성을 데이터를 캐시할 시간(초)으로 설정합니다. 응용 프로그램에 따라 적절한 값을 선택합니다.

  8. FilterExpression 속성을 다음 예제 식과 같이 반환할 데이터를 지정하는 식으로 설정합니다.

검색예제)
city = 'Seattle'
----------------------------------------------------------------------------------------

초간단 SqlDataSource  데이터검색방법

그리드뷰와 SqlDataSource 연결되어져있다는 가정하에

버튼을 눌러서 검색 숨긴코드에서 처리방법

    protected void Button1_Click(object sender, EventArgs e)
    {
        this.SqlDataSource1.FilterExpression = "m_id = '{0}' ";
        this.SqlDataSource1.FilterParameters.Add("m_id", "kojaedoo");
    }

또는

        this.SqlDataSource1.FilterExpression = "m_id = 'kojaedoo' ";

         //라이크로 검색하기

        //this.SqlDataSource1.FilterExpression = "k_name LIKE '%{0}%' ";
        //this.SqlDataSource1.FilterParameters.Add("k_name", "박");

예제

다음 코드 예제에서는 Northwind 데이터베이스에서 데이터를 검색하고 FilterExpressionFilterParameters 속성을 사용하여 이 데이터를 필터링하는 방법을 보여 줍니다.

SqlDataSource 컨트롤의 FilterExpression 속성은 Select 메서드를 실행하여 데이터를 검색할 때마다 적용됩니다.

이 예제에서는 FilterParameters 컬렉션에 들어 있는 필터 매개 변수의 자리 표시자가 FilterExpression 속성에 있습니다.

또한 필터 매개 변수는 DropDownList 컨트롤의 SelectedValue 속성에 바인딩된 ControlParameter 개체입니다.

DropDownList 컨트롤의 AutoPostBack 속성이 true로 설정되어 있기 때문에 DropDownList 선택을 변경하면 페이지에서는 정보를 서버에 다시 게시하고 GridView 컨트롤은 새 필터를 사용하여 데이터 소스 컨트롤에 다시 바인딩됩니다.

<HTML>
    <BODY>
        <FORM runat="server">
            <p>Show all employees with the following title:
            <asp:DropDownList
                id="DropDownList1"
                runat="server"
                AutoPostBack="True">
                <asp:ListItem Selected>Sales Representative</asp:ListItem>
                <asp:ListItem>Sales Manager</asp:ListItem>
                <asp:ListItem>Vice President, Sales</asp:ListItem>
            </asp:DropDownList></p>
            <asp:SqlDataSource
                id="SqlDataSource1"
                runat="server"
                ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
                SelectCommand="SELECT EmployeeID,FirstName,LastName,Title FROM Employees"
                FilterExpression="Title='{0}'">
                <FilterParameters>
                    <asp:ControlParameter Name="Title" ControlId="DropDownList1" PropertyName="SelectedValue"/>
                </FilterParameters>
            </asp:SqlDataSource>
            <p>

<asp:GridView
                id="GridView1"
                runat="server"
                DataSourceID="SqlDataSource1"
                AutoGenerateColumns="False">
                <columns>
                    <asp:BoundField Visible="False" DataField="EmployeeID" />
                    <asp:BoundField HeaderText="First Name" DataField="FirstName" />
                    <asp:BoundField HeaderText="Last Name" DataField="LastName" />
                </columns>
            </asp:GridView>
        </FORM>
    </BODY>
</HTML>

자주쓰는 텍스트 박스 검색방법

코드 예제는 TextBox 컨트롤, GridView 컨트롤, ObjectDataSource 컨트롤 및 전송 단추로 구성됩니다. 기본적으로 TextBox는 Northwind Traders 직원 중 한 명의 이름으로 채워집니다. GridViewTextBox의 이름으로 식별된 직원에 대한 정보를 표시합니다. 다른 직원에 대한 데이터를 검색하려면 해당 직원의 전체 이름을 TextBox에 입력하고 전송 단추를 클릭합니다.

<%@ Register TagPrefix="aspSample" Namespace="Samples.AspNet.CS" Assembly="Samples.AspNet.CS" %>
<%@ Page language="c#" %>
<script runat="server">

    protected void ObjectDataSource1_Filtering(object sender, ObjectDataSourceFilteringEventArgs e)
    {
        if (Textbox1.Text == "")
        {
            e.ParameterValues.Clear();
            e.ParameterValues.Add("FullName", "Nancy Davolio");
        }
    }
</script>

<html>
  <head>
    <title>ObjectDataSource - C# Example</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">

        <p>Show all users with the following name.</p>

        <asp:textbox id="Textbox1" runat="server" text="Nancy Davolio" />

        <asp:gridview
          id="GridView1"
          runat="server"
          datasourceid="ObjectDataSource1"
          autogeneratecolumns="False">
          <columns>
            <asp:boundfield headertext="ID" datafield="EmpID" />
            <asp:boundfield headertext="Name" datafield="FullName" />
            <asp:boundfield headertext="Street Address" datafield="Address" />
          </columns>
        </asp:gridview>

        <!-- Security Note: The ObjectDataSource uses a FormParameter,
             Security Note: which does not perform validation of input from the client. -->

        <asp:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetAllEmployeesAsDataSet"
          typename="Samples.AspNet.CS.EmployeeLogic"
          filterexpression="FullName='{0}'" OnFiltering="ObjectDataSource1_Filtering">
            <filterparameters>
              <asp:formparameter name="FullName" formfield="Textbox1" defaultvalue="Nancy Davolio" />
            </filterparameters>
        </asp:objectdatasource>

        <p><asp:button id="Button1" runat="server" text="Search" /></p>

    </form>
  </body>
</html>

데이타테이블 간단한 사용법 및 검색방법

DataTable 만들기


System.Data.SqlClient.SqlDataAdapter sqlAp = new System.Data.SqlClient.SqlDataAdapter("SELECT * FROM      SUB_FAMILY" , dbconn.GetConnection() );

   System.Data.DataTable dt  = new System.Data.DataTable();

   sqlAp.Fill(dt);
   System.Data.DataRowCollection rows =dt.Rows;
   foreach (DataRow dr in rows){
    System.Windows.Forms.MessageBox.Show( dr["필드네[임"].ToString() );
   }

RowFilter

System.Data.SqlClient.SqlDataAdapter sqlAp = new System.Data.SqlClient.SqlDataAdapter("SELECT * FROM  SUB_FAMILY" , dbconn.GetConnection() );

    System.Data.DataTable dt  = new System.Data.DataTable();  
    sqlAp.Fill(dt);
    System.Data.DataView dv = new DataView(dt);    
    dv.RowFilter = "name='kojaedoo'"; //where 이후의 검색어 네임이란 데이터베이스 필드에서 kojaedoo 검색

    /*LIKE 문으로 검색하기 :: dv.RowFilter = "name like '%kojaedoo%'"; */

dv.Sort ="name desc" //정렬방법

  for(int i=0; i < dv.Count; i++){
       System.Windows.Forms.MessageBox.Show( dv[i]["name"].ToString() );    
    }

Find

System.Data.SqlClient.SqlDataAdapter sqlAp = new System.Data.SqlClient.SqlDataAdapter("SELECT * FROM  SUB_FAMILY" , dbconn.GetConnection() );

System.Data.DataTable dt  = new System.Data.DataTable();  
sqlAp.Fill(dt);
System.Data.DataView dv = new DataView(dt);   

dv.Sort ="name desc" //정렬방법

int i = dv.Find("검색어");

만약 검색결과가 없으면 -1 이 반환된다

if(i  >=1){

System.Windows.Forms.MessageBox.Show(  dv[i]["name"].ToString() );

}   

dv.Find("검색어"); 이렇게 검색하면 하나밖에 결과물이 나오지않는다

아래방법처럼 검색하면 검색어가  검색된 모든 row가 나온다

FindRows (두개이상의 데이터를 검색할때)

    dv.Sort="f_idx desc";     
    System.Data.DataRowView []dr =  dv.FindRows("검색어");
    for(int for_i=0;for_i < dr.Length; for_i++ ){

      MessageBox.Show( dr[for_i].Row["데이터베이스 필드네임"].ToString()  );
    }

DataSet 값 불러오기

    string sql = "SELECT * FROM TEST";
    //아답터 생성
    this._DataAdapter = new System.Data.OleDb.OleDbDataAdapter();

//아답터 쿼리가져오기
    _DataAdapter.SelectCommand = new System.Data.OleDb.OleDbCommand(sql , this._Conn );

    //데이터셋 만들기
    this._DataSet = new DataSet();

    //아답터 쿼리담기
    this._DataAdapter.Fill(this._DataSet );

    //테이블 만들기
    this._DataTable = this._DataSet.Tables[0];
this._DataRowCollection = this._DataTable.Rows;

    //Get Data
    foreach (DataRow dr in this._DataRowCollection){     

        //필드안에 값 불러오기

         for(int i=0; i< _DataTable.Columns.Count; i++){          
            this.richTextBox1.Text += "\n"+dr[i];     
         }
    }

업데이트하기

    System.Data.DataRow row  = this._DataTable.NewRow();
    row["comm"] = "8";  
    _DataTable.Rows.Add(row);   

    string sqlstr ="insert into test(comm) values(?);"; 
    this._DataAdapter.InsertCommand = new System.Data.OleDb.OleDbCommand( sqlstr  , this._Conn ); 
    this._DataAdapter.InsertCommand.Parameters.Add("comm",System.Data.OleDb.OleDbType.VarChar ,50 , "comm" );
    this._DataAdapter.Update( this._DataSet );
    this.dataGrid1.DataSource =  this._DataSet.Tables[0];

  }

using System;
using System.Data;
using System.Data.SqlClient;
public class DataSetHandleTest{
public static void Main(){
    string conStr = "Server=localhost;user id=sa;password=;database=northwind";
    string query = "select  * from Address";
    Console.WriteLine("1. Connenction 생성과 Open");
    SqlConnection conn = new SqlConnection(conStr);
    conn.Open();
    Console.WriteLine("2. SqlDataAdapter 생성");
    SqlDataAdapter adapter = new SqlDataAdapter();
    Console.WriteLine("3. Adapter에 SelectCommand 할당");
    adapter.SelectCommand = new SqlCommand(query, conn);
    Console.WriteLine("4. DataSet 생성");
    DataSet ds = new DataSet();
    Console.WriteLine("5. Adapter를 통해서 DataSet 채우기");
    adapter.Fill(ds);  
    Console.WriteLine("6. Connection 닫기");
    conn.Close();
    Console.WriteLine("7. DataSet으로 작업하기");
    DataTable table= ds.Tables[0];
    DataRowCollection rows = table.Rows;
    foreach (DataRow dr in rows){
for (int i = 0; i<table.Columns.Count; i++)
        Console.Write("{0,15}",dr[i]);
      Console.WriteLine();
    }
  } //main
} //class

 

 

메소드 응용~

[C#]
public static SqlDataAdapter CreateCustomerAdapter(SqlConnection conn)
{
  SqlDataAdapter da = new SqlDataAdapter();
  SqlCommand cmd;
  // Create the SelectCommand.
  cmd = new SqlCommand("SELECT * FROM Customers " +
                       "WHERE Country = @Country AND City = @City", conn);
  cmd.Parameters.Add("@Country", SqlDbType.NVarChar, 15);
  cmd.Parameters.Add("@City", SqlDbType.NVarChar, 15);
  da.SelectCommand = cmd;
  // Create the InsertCommand.
  cmd = new SqlCommand("INSERT INTO Customers (CustomerID, CompanyName) " +
                       "VALUES (@CustomerID, @CompanyName)", conn);
  cmd.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
  cmd.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 40, "CompanyName");
  da.InsertCommand = cmd;
  return da;
}

OleDbDataAdapter.DeleteCommand 속성

[C#]
public static OleDbDataAdapter CreateCustomerAdapter(OleDbConnection conn)
{
  OleDbDataAdapter da = new OleDbDataAdapter();
  OleDbCommand cmd;
  OleDbParameter parm;
  // Create the SelectCommand.
  cmd = new OleDbCommand("SELECT * FROM Customers " +
                       "WHERE Country = @Country AND City = @City", conn);
  cmd.Parameters.Add("@Country", OleDbType.VarChar, 15);
  cmd.Parameters.Add("@City", OleDbType.VarChar, 15);
  da.SelectCommand = cmd;
  // Create the DeleteCommand.
  cmd = new OleDbCommand("DELETE FROM Customers WHERE CustomerID = @CustomerID", conn);
  parm = cmd.Parameters.Add("@CustomerID", OleDbType.Char, 5, "CustomerID");
  parm.SourceVersion = DataRowVersion.Original;
  da.DeleteCommand = cmd;
  return da;
}

OleDbDataAdapter.InsertCommand 속성

[C#]
public static OleDbDataAdapter CreateCustomerAdapter(OleDbConnection conn)
{
  OleDbDataAdapter da = new OleDbDataAdapter();
  OleDbCommand cmd;
  // Create the SelectCommand.
  cmd = new OleDbCommand("SELECT * FROM Customers " +
                       "WHERE Country = @Country AND City = @City", conn);
  cmd.Parameters.Add("@Country", OleDbType.VarChar, 15);
  cmd.Parameters.Add("@City", OleDbType.VarChar, 15);

  cmd = new OleDbCommand("SELECT * FROM Customers " +
                       "WHERE Country = @Country AND City = @City", conn); @Country , @City 를 ? 로 해주세요 오류나더라... ㅡㅡㅋ

  da.SelectCommand = cmd;
  // Create the InsertCommand.
  cmd = new OleDbCommand("INSERT INTO Customers (CustomerID, CompanyName) " +
                       "VALUES (@CustomerID, @CompanyName)", conn);
  cmd.Parameters.Add("@CustomerID", OleDbType.Char, 5, "CustomerID");
  cmd.Parameters.Add("@CompanyName", OleDbType.VarChar, 40, "CompanyName");
  da.InsertCommand = cmd;
  return da;
}

OleDbDataAdapter.SelectCommand 속성

[C#]
public static OleDbDataAdapter CreateCustomerAdapter(OleDbConnection conn)
{
  OleDbDataAdapter da = new OleDbDataAdapter();
  OleDbCommand cmd;
  // Create the SelectCommand.
  cmd = new OleDbCommand("SELECT * FROM Customers " +
                       "WHERE Country = @Country AND City = @City", conn);
  cmd.Parameters.Add("@Country", OleDbType.VarChar, 15);
  cmd.Parameters.Add("@City", OleDbType.VarChar, 15);
  da.SelectCommand = cmd;
  // Create the InsertCommand.
  cmd = new OleDbCommand("INSERT INTO Customers (CustomerID, CompanyName) " +
                       "VALUES (@CustomerID, @CompanyName)", conn);
  cmd.Parameters.Add("@CustomerID", OleDbType.Char, 5, "CustomerID");
  cmd.Parameters.Add("@CompanyName", OleDbType.VarChar, 40, "CompanyName");
  da.InsertCommand = cmd;
  return da;
}

OleDbDataAdapter.UpdateCommand 속성

[C#]
public static OleDbDataAdapter CreateCustomerAdapter(OleDbConnection conn)
{
  OleDbDataAdapter da = new OleDbDataAdapter();
  OleDbCommand cmd;
  OleDbParameter parm;
  // Create the SelectCommand.
  cmd = new OleDbCommand("SELECT * FROM Customers " +
                       "WHERE Country = @Country AND City = @City", conn);
  cmd.Parameters.Add("@Country", OleDbType.VarChar, 15);
  cmd.Parameters.Add("@City", OleDbType.VarChar, 15);
  da.SelectCommand = cmd;
  // Create the UpdateCommand.
  cmd = new OleDbCommand("UPDATE Customers SET CustomerID = @CustomerID, CompanyName = @CompanyName " +
                       "WHERE CustomerID = @oldCustomerID", conn);
  cmd.Parameters.Add("@CustomerID", OleDbType.Char, 5, "CustomerID");
  cmd.Parameters.Add("@CompanyName", OleDbType.VarChar, 40, "CompanyName");
  parm = cmd.Parameters.Add("@oldCustomerID", OleDbType.Char, 5, "CustomerID");
  parm.SourceVersion = DataRowVersion.Original;
  da.UpdateCommand = cmd;
  return da;
}

+ Recent posts