二、SqlCommand操作數據庫


1.ExecuteNonQuery:執行非查詢的T-SQL語句

using (SqlCommand cmd = conn.CreateCommand())
{
    //設置T-SQL語句
    cmd.CommandText = "insert into userInfo(id,userName,userAge,DelFlag)values(11,'趙非',18,0)";
    //執行T-SQL語句,並返回受影響的行數
    int num = cmd.ExecuteNonQuery();
    Console.WriteLine(num);
}

2.ExecuteScalar:執行查詢,並返回查詢所返回的結果集中第一行的第一列

using (SqlCommand cmd = conn.CreateCommand())
{
     //查詢Employee表中性別為男的所有信息
     cmd.CommandText = "select * from Employee where gender='男' ";
     //執行查詢,並返回這些信息中的第一行的第一列的數據
     label1.Text = cmd.ExecuteScalar().ToString();
}

 3.ExecuteReader:執行T-SQL語句,並返回一個SqlDataReader讀取器

using (SqlCommand cmd = conn.CreateCommand())
{
      cmd.CommandText = "select * from employee";
      //執行T-SQL語句,並生成一個SqlDataReader讀取器
      SqlDataReader reader = cmd.ExecuteReader();
      while (reader.Read())
      {
         //reader[1]:讀取表中第2列的數據
         listView1.Items.Add(reader[1].ToString());
      }
      reader.Close();
}

 4.數據導入

//提示用戶打開文件
using (OpenFileDialog opfd = new OpenFileDialog())
{
     if (opfd.ShowDialog() == DialogResult.OK)
     {
           this.textBox1.Text = opfd.FileName;
           //調用數據導入的方法
           ImportData(opfd.FileName);
           MessageBox.Show("數據導入成功");
     }
}
//數據導入的方法
private void ImportData(string fileName)
{
      //定義一個空字符串
      string tempStr = string.Empty;
      //用指定字符編碼,為指定文件名初始化StreamReader類的一個新實例
      using (StreamReader sr = new StreamReader(fileName, Encoding.UTF8))
      {
           string connStr = "server= .;uid = sa;pwd = 123;database = testDb";
           using (SqlConnection conn = new SqlConnection(connStr))
           {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                     //sr.ReadLine():從當前流中讀取下一行字符,並將數據作為字符串返回
                     while (!string.IsNullOrEmpty(tempStr = sr.ReadLine()))
                     {
                          string[] strs = tempStr.Split(',');
                          //注意:字符串數據要加單引號
                          cmd.CommandText = string.Format("insert into testTable3(id,name,num)values({0},'{1}',{2})", strs[0], strs[1], strs[2]);
                          cmd.ExecuteNonQuery();
                     }
                }
           }
      }
}

 5.數據導出

//聲明一個空字符串,用來存儲文件路徑
string filePath = string.Empty;
//提示用戶選擇文件的保存位置
using (SaveFileDialog ofd = new SaveFileDialog())
{
     if (ofd.ShowDialog() != DialogResult.OK)
     {
          return;
     }
     //選定的文件名的字符串
     filePath = ofd.FileName;
}
using (conn = new SqlConnection(connStr))
{
     conn.Open();
     using (SqlCommand cmd = conn.CreateCommand())
     {
           cmd.CommandText = "select * from TblArea";
           SqlDataReader sdr = cmd.ExecuteReader();
           //寫入流
           using (StreamWriter sw = new StreamWriter(filePath))
           {
                 while (sdr.Read())
                 {
                      string tempStr = sdr["AreaId"].ToString() + "\t" + sdr["AreaName"] + "\t" + sdr["AreaPId"] + "\r\n";
                      //將字符寫入sw流中
                      sw.Write(tempStr);
                 }
                 MessageBox.Show("導出成功!");
           }
     }
}       

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM