ADO.NET中调用存储过程
2010-07-12 16:29
459 查看
下面这个例子展示如何在ADO.NET调用存储过程。我只选择了一种方式,说实话不太喜欢多样化的方式去处理问题,这种发散式的做法在编程中似乎没有必要。选择自己喜欢的一种方式。
这里SQL Server有一个样本数据库Northwind.
以Northwind里的Region表为例:
Region表有2个字段:
RegionID, int 主键 RegionDescription, nchar(50)
写以下几个存储过程:
RegionUpdate: 多个参数
RegionDelete 一个参数
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
RegionInsert 带返回参数
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
工程添加下面的配置文件
App.confi
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
关于连接字符串怎么写参考:
http://www.connectionstrings.com
下面是C# code:
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
这里SQL Server有一个样本数据库Northwind.
以Northwind里的Region表为例:
Region表有2个字段:
RegionID, int 主键 RegionDescription, nchar(50)
写以下几个存储过程:
RegionUpdate: 多个参数
CREATE PROCEDURE RegionUpdate(@RegionID INTEGER, @RegionDescription NCHAR(50)) AS SET NOCOUNT OFF UPDATE Region SET RegionDescription = @RegionDescription WHERE RegionID = @RegionID
GO.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; }
RegionDelete 一个参数
CREATE PROCEDURE RegionUpdate(@RegionID INTEGER) AS SET NOCOUNT OFF DELETE FROM Region WHERE RegionID = @RegionID GO
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
RegionInsert 带返回参数
CREATE PROCEDURE RegionInsert(@RegionDescription NCHAR(50), @RegionID INTEGER OUTPUT) AS SET NOCOUNT OFF SELECT @RegionID = MAX(RegionID) + 1 FROM Region INSERT INTO Region VALUES(@RegionID, @RegionDescription) GO
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
工程添加下面的配置文件
App.confi
<?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add name="Northwind" providerName ="System.Data.SqlClient" connectionString ="server=(local); integrated security = SSPI; database = Northwind" /> </connectionStrings> </configuration>
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
关于连接字符串怎么写参考:
http://www.connectionstrings.com
下面是C# code:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Configuration; using System.Data.SqlClient; namespace SQLProcedureDemo { class Program { private static string GetConnectionStringsConfig(string connectionName) { string connectionString = ConfigurationManager.ConnectionStrings[connectionName].ConnectionString.ToString(); Console.WriteLine(connectionString); return connectionString; } static void Main(string[] args) { string source = GetConnectionStringsConfig("Northwind"); try { using (SqlConnection conn = new SqlConnection(source)) { conn.Open(); // Invoke RegionUpdate Procedure SqlCommand cmd = new SqlCommand("RegionUpdate", conn); cmd.CommandType = CommandType.StoredProcedure; SqlParameter updatepara1 = new SqlParameter("@RegionID", SqlDbType.Int); updatepara1.Value = 3; cmd.Parameters.Add(updatepara1); SqlParameter updatepara2 = new SqlParameter("@RegionDescription", SqlDbType.NChar); updatepara2.Value = "Northern"; cmd.Parameters.Add(updatepara2); // You can also use the following statement //cmd.Parameters.AddWithValue("@RegionID", 3); //cmd.Parameters.AddWithValue("@RegionDescription", "Northern"); cmd.ExecuteNonQuery(); // Invoke RegionDelete Procedure SqlCommand cmdDel = new SqlCommand("RegionDelete", conn); cmdDel.CommandType = CommandType.StoredProcedure; SqlParameter myParameter = new SqlParameter("@RegionID", SqlDbType.Int); myParameter.Value =5; cmdDel.Parameters.Add(myParameter); cmdDel.ExecuteNonQuery(); // Invoke RegionInsert Procedure SqlCommand cmdInsert = new SqlCommand("RegionInsert", conn); cmdInsert.CommandType = CommandType.StoredProcedure; SqlParameter para1 = new SqlParameter("@RegionDescription", SqlDbType.NChar); para1.Value = "South West"; cmdInsert.Parameters.Add(para1); SqlParameter para2 = new SqlParameter("@RegionID", SqlDbType.Int); para2.Direction = ParameterDirection.Output; cmdInsert.Parameters.Add(para2); cmdInsert.ExecuteNonQuery(); int newRegionID = (int)cmdInsert.Parameters["@RegionID"].Value; Console.WriteLine(newRegionID); conn.Close(); } } catch (SqlException ex) { // Console.WriteLine(ex.Message); } Console.ReadKey(); } } }
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
相关文章推荐
- ADO.NET调用存储过程
- ADO.NET调用存储过程,过程比较全
- 数据库连接+SQL语句+存储过程+ADO.Net调用存储过程
- HOW TO:使用 ADO.NET 和 Visual C++ .NET 调用带参数的存储过程
- ADO.NET调用存储过程
- C#二十六 使用Ado.Net调用存储过程
- [.NET]ADO.NET调用存储过程
- 如何使用 ADO.NET 和 Visual C# .NET 调用带参数的存储过程
- ADO.NET(三)调用存储过程
- Ado.Net调用带输入,输出参数的存储过程
- C#二十六 使用Ado.Net调用存储过程
- 三层架构——存储过程(在ADO.net中调用存储过程)例子
- ADO.NET 第二课 事务和存储过程的调用(二)
- ado.net调用存储过程的一个封装类(网上找的不怕只怕自己不去理解)
- ADO.NET(五) 调用存储过程(oracle为例)
- C#二十六 使用Ado.Net调用存储过程
- ADO.net 调用存储过程
- ado.net调用存储过程
- 【ASP.NET开发】ADO.NET调用带输出参数的存储过程
- ADO.NET调用存储过程,过程比较全