C# sqlcommand 使用方法 (轉)


使用sqlcommand對象來返回數據集合的方法、

string strconn="data source=billgates;initial catalog=test;integrated security=SSPI;";
SqlConnection conn=new SqlConnection(strconn);
conn.Open();
SqlCommand sqlcmd=new SqlCommand();
sqlcmd.CommandText ="select * from student";
sqlcmd.Connection=conn;
SqlDataAdapter adp=new SqlDataAdapter(sqlcmd);
DataTable dt=new DataTable();
adp.Fill(dt);
dataGrid1.DataSource=dt;

使用sqlcommand對象來返回SQL執行正確與否
string strconn="data source=billgates;initial catalog=test;integrated security=SSPI;";
SqlConnection conn=new SqlConnection(strconn);
conn.Open();
SqlCommand sqlcmd=new SqlCommand();
sqlcmd.CommandText ="select * from student";
sqlcmd.Connection=conn;
try
{
  sqlcmd.ExecuteNonQuery();
  MessageBox.Show("success");
}
catch
{
  MessageBox.Show("false");
}

使用sqlcommand對象來操作存儲過程

 

string strconn="data source=billgates;initial catalog=test;integrated security=SSPI;";
SqlConnection conn=new SqlConnection(strconn);
conn.Open();
SqlCommand sqlcmd=new SqlCommand();
sqlcmd.CommandText ="a";
sqlcmd.CommandType=CommandType.StoredProcedure ;
sqlcmd.Connection=conn;
sqlcmd.Parameters.Add("@param1",textBox1.Text.Trim());
sqlcmd.Parameters.Add("@param2",textBox2.Text.Trim());
sqlcmd.Parameters.Add("@param3",textBox3.Text.Trim());

SqlDataAdapter adp=new SqlDataAdapter(sqlcmd);
DataTable dt=new DataTable();
adp.Fill(dt);
dataGrid1.DataSource=dt;

 

ExecuteReader方法

 

using System;
using System.Data.SqlClient;
public class Lvcha
{
  public static void Main(string[] args)
  {
    string source="Server =192.168.1.100; User ID=ac_sy_guest; Password=guest1314; Initial CataLog=Account";
    string select="select * from dbUser";
    SqlConnection conn=new SqlConnection(source);
    conn.Open();
    SqlCommand cmd=new SqlCommand(select,conn);
    SqlDataReader reader=cmd.ExecuteReader();//返回只能讀取,不能寫入的SqlDataReader對象
    while(reader.Read())
    {
      Console.WriteLine("{0}",reader["user_name"]);
    }
    Console.ReadLine();
  }
}

 

ExecuteNonQuery方法

 

一般修改刪除都插入都用它
返回受影響的行數。

using System;
using System.Data.SqlClient;
public class Lvcha
{
  public static void Main(string[] args)
  {
    string source="Server =192.168.1.100; User ID=ac_sy_guest; Password=guest1314; Initial CataLog=Account";
    string select="updata .....";
    SqlConnection conn=new SqlConnection(source);
    conn.Open();
    SqlCommand cmd=new SqlCommand(select,conn);
    object o=cmd.ExecuteNonQuery();
   
    while(reader.Read())
    {
      Console.WriteLine("{0}",reader["user_name"]);
    }
    Console.ReadLine();
  }
}

 

ExecuteScalar方法

執行查詢,並返回查詢所返回的結果集中第一行的第一列。所有其他的列和行將被忽略。

 

using System;
using System.Data.SqlClient;
public class Lvcha
{
  public static void Main(string[] args)
  {
    string source="Server =192.168.1.100; User ID=ac_sy_guest; Password=guest1314; Initial CataLog=Account";
    string select="select count(*) from dbUser";
    SqlConnection conn=new SqlConnection(source);
    conn.Open();
    SqlCommand cmd=new SqlCommand(select,conn);
    object o=cmd.ExecuteScalar();
    Console.WriteLine(o);
    Console.ReadLine();
  }
}

 

ExecuteNonQuery用於執行不返回任何記錄的SQL語句或存儲過程。在數據庫執行如更新、插入、刪除操作時,應使用這個方法。ExecuteNonQuery返回一個整數值,用來說明受查詢語句影響的行數。
connection.Open();
command.ExecuteNonQuery();
command.Close();   

ExecuteScalar與ExecuteNonQuery一樣,其返回的也是單值,但該返回值是從數據庫中讀出來的,而不是受影響的行數。它通常用於選擇一個值的SQL語句。如果SELECT返回多行或多列,則使用該方法僅返回第一行第一列的數據。

ExecuteReader被用於返回多條記錄的SELECT語句(包含任意個字段)。ExecuteReader將返回一個包含查詢結果的SqlDataReader對象。一個SqlDataReader對象是以順序向前且只讀的形式逐個讀取並返回結果的。SqlDataReader是數據庫中讀取數據最快的對象,但必須打開連接。通過SqlDataReader取回所有的記錄,並把它們存入DataTable對象中(它可以存儲離線數據而不需要一個打開的連接),這樣就可以馬上關閉數據庫連接了。DataTable類可以存放本地的結果集而不需要一個打開的SQL Server連接,和其它的ADO.NET對象一樣,它也不是特定於某種數據提供程序的。

conn.Open();
SqlDataReader reader = comm.ExecuteReader();
DataTable table = new DataTable();
table.Load(reader);
reader.Close();
conn.Close();

出處:http://bluelightning.blog.163.com/blog/static/581653201002010511090/

 


免責聲明!

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



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