SQL(2)---C#應用

來源:互聯網
上載者:User

標籤:

ADO.NET中5大對象的概述

1---Connection對象:串連資料庫。

   (1)使用sa 登入

             conn = new SqlConnection("Data Source=NEWLAND-PC;Initial Catalog=Srr1100U;User ID=sa;pwd=123456;"); conn.Open(); 

   (2)使用windows本地登入

          conn = new SqlConnection("Data Source=NEWLAND-PC;Initial Catalog=Image;Integrated Security=True;"); conn.Open(); 

2---Command對象:執行T-SQL語句。

   (1)ExecuteNonQuery()方法,執行增刪改命令。返回受影響的行數!一

             if (comm.ExecuteNonQuery() > 0) { MessageBox.Show("儲存成功!"); } 

   (2)ExecuteReader()方法,返回一個DataReader對象。一般用於string類型

          GetConn();          string select = "select COUNT( distinct Data) as num from Srr1100U";          comm = new SqlCommand(select,conn);          SqlDataReader MyData = comm.ExecuteReader();          MyData.Read();          this.txtHuman.Text = "人數:" + MyData["num"].ToString();

   (3)ExecuteScalar()方法,返回首行首列。可以用於byte[]數組:

         GetConn();                     string select = "select Image  from CameraImage where ImageName=‘" + DataId + "‘";                     comm = new SqlCommand(select, conn);         byte[] Mybyte = (byte[])comm.ExecuteScalar();

     (4)SqlParameter[]參數,是DataSet的映射,可用來一次性更新大量的資料。

         標準寫法:

         string select = "insert Message(CardData,Name,Money,Tel) values (@CardData,@Name,@Money,@Tel)";                    SqlParameter[] MySqlParameter = new SqlParameter[]                    {                        new SqlParameter("@CardData",MyCardData),                        new SqlParameter("@Name",DataName),                        new SqlParameter("@Money",DataMoney),                        new SqlParameter("@Tel",DataTel)                          };                    comm = new SqlCommand(select, conn);                    if (MySqlParameter != null && MySqlParameter.Length > 0)                    {                        foreach (SqlParameter p in MySqlParameter)                        {                            comm.Parameters.Add(p);                        }                    }          if (comm.ExecuteNonQuery() > 0)          {                 MessageBox.Show("寫入成功");          }

         簡化寫法:

          string select = "insert Message(CardData,Name,Money,Tel) values (@CardData,@Name,@Money,@Tel)";                    comm = new SqlCommand(select, conn);                    comm.Parameters.Add(new SqlParameter("@CardData", SqlDbType.NVarChar));                    comm.Parameters.Add(new SqlParameter("@Name", SqlDbType.NVarChar));                    comm.Parameters.Add(new SqlParameter("@Money", SqlDbType.NVarChar));                    comm.Parameters.Add(new SqlParameter("@Tel", SqlDbType.NVarChar));                    comm.Parameters[0].Value = MyCardData;                    comm.Parameters[1].Value = DataName;                    comm.Parameters[2].Value = DataMoney;                    comm.Parameters[3].Value = DataTel;         if (comm.ExecuteNonQuery() > 0)                {                    MessageBox.Show("寫入成功");                }

3---DataAdapter對象:資料配接器,從資料庫中檢索資料,再填充到本機資料集中。同時,我們可以利用DataAdapter,再將資料反向從DataSet中更新回資料庫。

  (1) DataAdapter的Fill方法,用於使用DataAdapter的SelectCommand的結果來填充DataSet。 

         GetConn();
string select = "select * from CameraImage where ImageName=‘" + address + "‘";
MySqlDataAdapter = new SqlDataAdapter(select, conn);
MyDataSet = new DataSet();
MySqlDataAdapter.Fill(MyDataSet);
MemoryStream MyMemoryStream = new MemoryStream((byte[])MyDataSet.Tables[0].Rows[0][2]);   

4---DataReader對象:是一個只向前的資料流。用於從資料來源中檢索唯讀資料集,並且必須有串連時才可以用。

  CommandBehavior.CloseConnection屬性,關閉時同時關閉conn串連
          GetConn();          string Myselect = "select COUNT(CardData) as num from dbo.Message";          comm = new SqlCommand(Myselect, conn);          SqlDataReader MySqlDataReader = comm.ExecuteReader(CommandBehavior.CloseConnection);          if (MySqlDataReader .Read())          {              MessageBox.Show(read2["num"].ToString());          }
read.Close();

5---DataSet對象:是ADO.NET的核心,相當於本機資料庫,它與資料庫無關的,它和遠端資料庫串連的橋樑就是.NET資料提供者。它是由多個表構成,每個表都是一個DataTable對象。

         GetConn();         string select = "select * from CameraImage where ImageName=‘" + address + "‘";         MySqlDataAdapter = new SqlDataAdapter(select, conn);                      MyDataSet = new DataSet();         MySqlDataAdapter.Fill(MyDataSet);         MemoryStream MyMemoryStream = new MemoryStream((byte[])MyDataSet.Tables[0].Rows[0][2]);  //Tables表的標號,rows[行][列]

SQL(2)---C#應用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.