2009-08-11 90 views
-1

任何人都可以舉一個使用C#執行T-SQL語句的例子嗎?如何從c#執行T-SQL?

+2

的OP *可能*已經張貼在答案的嘗試雖然。這是非常非常基本的東西。 – annakata 2009-08-11 20:44:17

回答

9

你的意思是這樣的:

private static void ReadOrderData(string connectionString) 
{ 
     string commandText = "SELECT OrderID, CustomerID FROM dbo.Orders;"; 
     using (SqlConnection connection = new SqlConnection(connectionString)) 
     { 
      using (SqlCommand command = new SqlCommand(commandText, connection)) 
      { 
        connection.Open(); 
        using (SqlDataReader reader = command.ExecuteReader()) 
        { 
         while (reader.Read()) 
         { 
           Console.WriteLine(String.Format("{0}, {1}", 
           reader[0], reader[1])); 
         } 
        } 
      } 
     } 
} 

或者,每HAPS是這樣的:

static public int AddProductCategory(string newName, string connString) 
{ 
    Int32 newProdID = 0; 
    string sql = 
     "INSERT INTO Production.ProductCategory (Name) VALUES (@Name); " 
     + "SELECT CAST(scope_identity() AS int)"; 
    using (SqlConnection conn = new SqlConnection(connString)) 
    { 
     SqlCommand cmd = new SqlCommand(sql, conn); 
     cmd.Parameters.Add("@Name", SqlDbType.VarChar); 
     cmd.Parameters["@Name"].Value = newName; 
     try 
     { 
      conn.Open(); 
      newProdID = (Int32)cmd.ExecuteScalar(); 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex.Message); 
     } 
    } 
    return (int)newProdID; 
} 

來源:MSDN

0

使用閱讀器:

SqlConnection MSSQLConn = new SqlConnection("your connection string"); 
MSSQLConn.Open(); 
SqlCommand MSSQLSelectConsignment = new SqlCommand(); 
MSSQLSelectConsignment.CommandText = "select * from yourtable where blah = @blah"; 
MSSQLSelectConsignment.Parameters.AddWithValue("@blah", somestring); 
MSSQLSelectConsignment.Connection = MSSQLConnOLD; 
SqlDataReader reader = MSSQLSelectConsignment.ExecuteReader(); 

while (reader.Read()) 
{ 
... 
} 

要帶回一個值:

MSSQLSelectConsignment.CommandText = "select fieldname from yourtable where blah = @blah"; 
string yourstring = MSSQLSelectConsignment.ExecuteScalar().ToString(); 

或帶回的行數影響更新等:

MSSQLSelectConsignment.CommandText = "update yourtable set yourfield = 0 where blah = @blah"; 
int yourint = MSSQLSelectConsignment.ExecuteNonQuery(); 

希望幫助:)

+0

糟糕的例子。你正在泄漏資源。 – Will 2009-08-11 11:10:43

+0

這只是一個快速寫出來,我總是願意學習如何提高我的代碼。我沒有添加任何關閉/處置語句,我意識到我通常會這樣做 – Tikeb 2009-08-11 11:23:23

+0

您應該這樣做。但是,參數很好。 – Will 2009-08-11 12:36:06