博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c#访问存储过程
阅读量:5025 次
发布时间:2019-06-12

本文共 3577 字,大约阅读时间需要 11 分钟。

// 2015/07/04// 访问存储过程using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Data;using System.Data.SqlClient;namespace Ado.netstart_1{    class Program    {        static void Main(string[] args)        {            // 特殊的字符串,数据库连接串            // 第一种            string connectionString = "server=.;database=BookSample;uid=LJK;pwd=123456;";            // 第二种            // windows身份验证            // 当使用windows身份验证的时候,windows用户就是运行程序的用户            // string connectionString = "server=.;integrated security=true;database=BookSample";            // 用来访问数据库的类            SqlConnection connection = new SqlConnection(connectionString);            try            {                // 与数据库建立连接                connection.Open();                Console.WriteLine("已经建立连接");                // sql就是一个字符串                // 存储过程在数据库中有一个名字:execute 名字                // 现在的sql命令只需要存储过程的名字,不需要execute,也不需要参数                string sql = "output";                // SqlCommand 表示发送数据库执行SQL命令                // 现在sql已经不是标准的sql命令,而是一个存储过程                SqlCommand command = new SqlCommand(sql, connection);                // 通知数据库现在执行的是存储过程                // 如果没有设定那么默认为标准的存储过程                command.CommandType = CommandType.StoredProcedure;                                // 提供存储过程需要的参数                // 表示参数的类SqlParameter                SqlParameter pEnd = new SqlParameter("@id", System.Data.SqlDbType.Int);                pEnd.Value = 2;                //现在存储过程有多了一个传出参数                SqlParameter result = new SqlParameter("@stuname",System.Data.SqlDbType.VarChar);                //默认情况下,Direction的值是传入参数                //现在是传出参数                result.Direction = ParameterDirection.Output;                // 在执行存储过程的时候,将参数传递给存储过程                // 在存储过程之前,必须将需要的参数依次准备好                command.Parameters.Add(pEnd);                command.Parameters.Add(result);                // 设置实际的参数值                // 将命令发送到数据库执行                // sql语句可分为:查询语句和非查询语句                // 默认工作在自动事务之下                // 如果工作在手动事务之下                // begin transaction                // rollback / commit                // 在执行sql dml之前,启动事务                SqlTransaction trans = connection.BeginTransaction();//事务对象                // 设定命令所属的事务管理                command.Transaction = trans;                //执行该存储过程对数据库中的行数没有影响                // int effectCount = command.ExecuteNonQuery();                // Console.WriteLine("{0} 行受影响", effectCount);                //对于传出参数来说,必须在执行存储过程之后才能取得传出的值                //因为数据库中传出的值,可能是各种类型,所以,value 属性的类型是Object                String presult = (String)result.Value;                Console.WriteLine("pResult: {0}",presult);                Console.Write("命令已经执行,事务还没有提交,你确定提交吗?Y/N");                string line = Console.ReadLine();                if (line.Substring(0, 1).ToUpper() == "Y")                {                    trans.Commit();                    Console.WriteLine("事务已经提交");                }                else                {                    trans.Rollback();                    Console.WriteLine("事务已经回滚");                }            }            catch (SqlException exception)            {                Console.WriteLine(exception.Message);            }            finally            {                // 或者断开与数据库的连接                connection.Dispose();                // connection.Close();                Console.WriteLine("已经断开连接");            }            Console.ReadKey();        }    }}
View Code

 

转载于:https://www.cnblogs.com/IamJiangXiaoKun/p/4620932.html

你可能感兴趣的文章
rxjs一句话描述一个操作符(1)
查看>>
第一次独立上手多线程高并发的项目的心路历程
查看>>
ServiceStack 介绍
查看>>
Centos7下载和安装教程
查看>>
无谓的通宵加班之后的思索
查看>>
S1的小成果:MyKTV系统
查看>>
从setting文件导包
查看>>
编写一个函数isMerge,判断一个字符串str是否可以由其他两个字符串part1和part2“组合”而成...
查看>>
union和union all
查看>>
Github 开源:使用控制器操作 WinForm/WPF 控件( Sheng.Winform.Controls.Controller)
查看>>
PMD使用提醒
查看>>
Codeforces 887D Ratings and Reality Shows
查看>>
论文《A Generative Entity-Mention Model for Linking Entities with Knowledge Base》
查看>>
CentOS 6.7编译安装PHP 5.6
查看>>
Linux记录-salt分析
查看>>
Android Studio默认快捷键
查看>>
发布开源库到JCenter所遇到的一些问题记录
查看>>
第七周作业
查看>>
函数式编程与参数
查看>>
flush caches
查看>>