CREATE PROCEDURE dbo.myCurser
/*
(
@parameter1 int = 5,
@ datatype OUTPUT
)
*/
AS
/* SET NOCOUNT ON */
BEGIN
SELECT * FROM T_stu;
END
RETURN
然后在C#中调用:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
namespace db3
{
class test
{
static void Main(String[] args)
{
setDomain();
string connectionString = ConfigurationManager.AppSettings["connectString"];
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand command = connection.CreateCommand();
// SqlTransaction transaction;
// Start a local transaction.
// Must assign both transaction object and connection
// to Command object for a pending local transaction
command.Connection = connection;
try
{
command.CommandText = "myCurser";
command.CommandType = CommandType.StoredProcedure;
// Attempt to commit the transaction.
SqlDataAdapter adapter = new SqlDataAdapter(command);
DataSet ds = new DataSet();
adapter.Fill(ds);
DataTable dataTable = ds.Tables[0];
for (int i = 0; i < dataTable.Rows.Count; i++)
{
DataRow row = dataTable.Rows[i];
string name = Convert.ToString(row["name"]);
Console.WriteLine(name);
}
Console.WriteLine("Both records are written to database.");
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine("Commit Exception Type: {0}", ex.GetType());
Console.WriteLine(" Message: {0}", ex.Message);
// Attempt to roll back the transaction.
try
{
}
catch (Exception ex2)
{
// This catch block will handle any errors that may have occurred
// on the server that would cause the rollback to fail, such as
// a closed connection.
Console.WriteLine("Rollback Exception Type: {0}", ex2.GetType());
Console.WriteLine(" Message: {0}", ex2.Message);
}
Console.ReadKey();
}
}
}
private static void setDomain()
{
string datadir = AppDomain.CurrentDomain.BaseDirectory;
if (datadir.EndsWith(@"\bin\Debug\") || datadir.EndsWith(@"\bin\Release\"))
{
datadir = System.IO.Directory.GetParent(datadir).Parent.Parent.FullName;
AppDomain.CurrentDomain.SetData("DataDirectory", datadir);
}
}
}
}