這真是一個非常愚蠢的問題,但我習慣於使用linq /其他方法來連接和查詢數據庫,我從來沒有停下來學習如何從頭開始。將sql語句作爲字符串傳遞給mssql與C#?
問:如何建立到數據庫的手動連接並將它傳遞給C#中的字符串參數? (是的,我知道......純粹的無知)。
由於
這真是一個非常愚蠢的問題,但我習慣於使用linq /其他方法來連接和查詢數據庫,我從來沒有停下來學習如何從頭開始。將sql語句作爲字符串傳遞給mssql與C#?
問:如何建立到數據庫的手動連接並將它傳遞給C#中的字符串參數? (是的,我知道......純粹的無知)。
由於
using (SqlConnection conn = new SqlConnection(databaseConnectionString))
{
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "StoredProcedureName";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@ID", fileID);
conn.Open();
using (SqlDataReader rdr =
cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
if (rdr.Read())
{
// process row from resultset;
}
}
}
}
一種使用SqlCommand
類來執行使用ado.net SQL Server上的命令(或者存儲過程或SQL)。教程比比皆是。
下面是http://www.csharp-station.com/Tutorials/AdoDotNet/Lesson07.aspx
public void RunStoredProcParams()
{
SqlConnection conn = null;
SqlDataReader rdr = null;
// typically obtained from user
// input, but we take a short cut
string custId = "FURIB";
Console.WriteLine("\nCustomer Order History:\n");
try
{
// create and open a connection object
conn = new
SqlConnection("Server=(local);DataBase=Northwind;Integrated Security=SSPI");
conn.Open();
// 1. create a command object identifying
// the stored procedure
SqlCommand cmd = new SqlCommand(
"CustOrderHist", conn);
// 2. set the command object so it knows
// to execute a stored procedure
cmd.CommandType = CommandType.StoredProcedure;
// 3. add parameter to command, which
// will be passed to the stored procedure
cmd.Parameters.Add(
new SqlParameter("@CustomerID", custId));
// execute the command
rdr = cmd.ExecuteReader();
// iterate through results, printing each to console
while (rdr.Read())
{
Console.WriteLine(
"Product: {0,-35} Total: {1,2}",
rdr["ProductName"],
rdr["Total"]);
}
}
finally
{
if (conn != null)
{
conn.Close();
}
if (rdr != null)
{
rdr.Close();
}
}
}
爲例
對此示例的改進是使用「using」關鍵字來自動處理Connection,Command和Reader實例。 – 2009-03-03 02:23:26
3事情沒有人表現出你的呢:
。
string sql = "MyProcedureName";
using (var cn = new SqlConnection(databaseConnectionString))
using (var cmd = new SqlCommand(sql, cn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@ParameterName", SqlDbType.VarChar, 50)
.Value = "MyParameterValue";
conn.Open();
using (SqlDataReader rdr =
cmd.ExecuteReader(CommandBehavior.CloseConnection))
{
if (rdr.Read())
{
// process row from resultset;
}
}
}
謝謝 - 我試圖搜索它,但得到了廣泛的結果,其中沒有一個似乎是我正在尋找。 SqlCommand類肯定會縮小搜索範圍。謝謝 – Chance 2009-03-03 02:22:31