SqlConnection ,SqlTransaction,SqlCommand的常用法

using System;
using System.Data;
using System.Data.SqlClient;
using System.Text;

namespace ConsoleApplication1
{

    static class Test8
    {
        static SqlConnection cn;
        static SqlTransaction tr;

        public static void Test()
        {
            string dbConnection = "data source=192.168.131.38;initial catalog=SWSK_YOSAN_161115;persist security info=True;user id=sa;password=S3300859!;MultipleActiveResultSets=True;";
            cn = new SqlConnection(dbConnection);
            cn.Open();
            tr = cn.BeginTransaction();

            try
            {
                //To update data by ExecuteNonQuery()
                UpDataByExecuteNonQuery("EDI_ZENRECVNO", "E0760002", 44444, DateTime.Now);

                //GetZenrecNo("E0760002", "EDI_ZENRECVNO");
                GetByExecuteScalar("E0760002", "EDI_ZENRECVNO");

                //TEST
                DataTable dt = GetDataBySqlDataAdapter();

            }
            catch
            {
                tr.Rollback();
            }
            finally
            {
                tr.Commit();
                if (cn != null)
                    cn.Close();
            }
        }

        private  static void UpDataByExecuteNonQuery(string tblName, string kinouID, int upRecvNo, DateTime upSysDate)
        {
            try
            {
                SqlCommand cmUpd = new SqlCommand();
                cmUpd.CommandTimeout = 60;
                cmUpd.Connection = cn;
                cmUpd.Transaction = tr;

                StringBuilder stb = new StringBuilder();
                Int32 rtn = 0;

                stb.AppendLine("   UPDATE " + tblName);
                stb.AppendLine("   SET EDIRECVNO = @UPRECVNO");
                stb.AppendLine("   ,TRKYMD  = @TRKYMD");
                stb.AppendLine("   ,TRKTIME = @TRKTIME");
                stb.AppendLine("    WHERE KINOKANRIID = @KINOID");
                cmUpd.CommandText = stb.ToString();

                cmUpd.Parameters.Add("@UPRECVNO", SqlDbType.BigInt);
                cmUpd.Parameters.Add("@KINOID", SqlDbType.VarChar);
                cmUpd.Parameters.Add("@TRKYMD", SqlDbType.DateTime);
                cmUpd.Parameters.Add("@TRKTIME", SqlDbType.DateTime);

                cmUpd.Parameters["@UPRECVNO"].Value = upRecvNo;
                cmUpd.Parameters["@KINOID"].Value = kinouID;
                cmUpd.Parameters["@TRKYMD"].Value = upSysDate.Date;
                cmUpd.Parameters["@TRKTIME"].Value = upSysDate;

                rtn = cmUpd.ExecuteNonQuery();

                cmUpd.CommandText = stb.ToString();

                rtn = cmUpd.ExecuteNonQuery();
                Console.WriteLine(rtn.ToString());
                Console.ReadLine();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        private static Int32 GetByExecuteNonQuery(string kinouID, string tblName)
        {
            try
            {
                DataTable ret = new DataTable();
                SqlCommand cm = new SqlCommand();
                cm.CommandTimeout = 60;
                cm.Connection = cn;
                SqlDataAdapter adp = new SqlDataAdapter();
                DataSet ds = new DataSet();
                StringBuilder stb = new StringBuilder();

                Int32 rtn = 0;

                stb.AppendLine("   SELECT EDIRECVNO");
                stb.AppendLine("     FROM " + tblName);
                stb.AppendLine("    WHERE KINOKANRIID = ‘" + kinouID + "‘");
                stb.AppendLine(" ORDER BY TRKYMD, TRKTIME");

                cm.CommandText = stb.ToString();
                cm.Transaction = tr;
                adp.SelectCommand = cm;
                adp.Fill(ds, "GetRecvT");
                ret = ds.Tables["GetRecvT"];

                if (ret.Rows.Count > 0)
                {
                    rtn = int.Parse(ret.Rows[0][0].ToString());
                }

                Console.WriteLine(rtn.ToString());

                Console.ReadLine();

                return rtn;
            }
            catch
            {
                throw;
            }
        }

        private static string GetByExecuteScalar(string kinouID, string tblName)
        {
            try
            {
                SqlCommand cm = new SqlCommand
                {
                    CommandTimeout = 60,
                    Connection = cn,
                    Transaction = tr
                };

                StringBuilder stb = new StringBuilder();
                stb.AppendLine("   SELECT EDIRECVNO");
                stb.AppendLine("     FROM " + tblName);
                stb.AppendLine("    WHERE KINOKANRIID = ‘" + kinouID + "‘");
                stb.AppendLine(" ORDER BY TRKYMD, TRKTIME");

                cm.CommandText = stb.ToString();

                var rtn = cm.ExecuteScalar();

                Console.WriteLine(rtn.ToString());

                Console.ReadLine();

                return rtn.ToString();
            }
            catch
            {
                throw;
            }
        }

        private static DataTable GetDataBySqlDataAdapter()
        {
            var ds = new DataSet();

            var cm = new SqlCommand
            {
                CommandTimeout = 60,
                Connection = cn,
                Transaction = tr
            };

            //SQL発行時のタイムアウトを設定
            using (var adp = new SqlDataAdapter())
            {
                var stb = new StringBuilder();

                //空白のデータベースを取得する
                stb.AppendLine("    SELECT  *");
                stb.AppendLine("    FROM  " + "TABLENAME");
                stb.AppendLine("    ORDER BY ENTRYTIME, SEQ, MAT_DOC");

                cm.CommandText = stb.ToString();
                adp.SelectCommand = cm;
                adp.Fill(ds);
            }

            return ds.Tables[0];
        }
    }   

}

  

时间: 2024-10-31 20:35:13

SqlConnection ,SqlTransaction,SqlCommand的常用法的相关文章

ADO.Net之SqlConnection、 Sqlcommand的应用学习心得(思维导图,知识解析,案例分析)

ADO.Net之SqlConnection. Sqlcommand的应用 一.思维导图: ADO.NET与SQL连接: 二.知识点介绍: SqlConnection和Sqlcommand都是组成数据提供程序的类. SqlConnection使用它来建立和数据库的连接,Sqlcommand使用它执行SQL命令和存储过程. ADO.NET有两种类型的对象:基于连接的和基于内容的,SqlConnection和Sqlcommand属于基于连接的,它们连接到数据库,执行SQL语句,遍历只读结果集或者填充D

ADo.Net之SqlConnection、SqlCommand的应用

连接数据库 首先要在代码中添加对System.Data.SqlClient命名空间的引用: using System.Data.SqlClient; 1.使用SqlConnection对象 (1)连接本地数据库 "Server=(Local);Database=EduBaseDemo;Integrated Security=sspi"; (2)创建SqlConnection对象 SqlConnection sqlConnection = new SqlConnection(); (3)

ADO.Net之SqlConnection、 Sqlcommand的应用

一.知识描述点 1.SqlConnection (1)使用SqlConnection类可以连接到SQL Server数据库.SqlConnection对象的主要属性和方法如下: --属性:ConnectionString(连接字符串) --方法:Open(打开数据库连接) Close(关闭数据库连接) (2)连接数据库主要分以下三步: --定义字符串 --创建SqlConnection对象,代码如下: SqlConnection sqlConnection = new SqlConnection

history添加时间点显示、及最常用法

在/etc/bashrc文件中添加: HISTFILESIZE=2000 HISTSIZE=2000 HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S   " export HISTTIMEFORMAT 保存推出,并且exit退出当前shell,重新进入后: [[email protected] ~]$ history 1  2015/09/26 06:57:11   su 2  2015/09/26 06:57:11   exit 3  2015/09/26 06:

js,jquery常用法

前端JS JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果.通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的. 1.存在形式 1.文件形式     <script src="js/oldboy.js"></script> 2.嵌入html     <script type='text/javascript'>alert('page');&

C++ vector常用法

在c++中,vector是一个十分有用的容器,下面对这个容器做一下总结. 1 基本操作 (1)头文件#include<vector>. (2)创建vector对象,vector<int> vec; (3)尾部插入数字:vec.push_back(a); (4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的. (5)使用迭代器访问元素. vector<int>::iterator it; for(it=vec.begi

using的基本用法

1.using指令.using + 命名空间名字,这样可以在程序中直接用命令空间中的类型,而不必指定类型的详细命名空间,类似于Java的import.C++的<#Include>,这个功能也是最常用的,几乎每个cs的程序都会用到. 例如:using System; 一般都会出现在*.cs中. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Dat

Winform开发之SqlCommand常用属性和方法

SqlCommand类表示要对 SQL Server 数据库执行的一个 Transact-SQL 语句或存储过程,有若干个属性和若干个方法,具体的各类方法使用可以从msdn上找到. 这里介绍几个常用东东 一.属性 CommandText 获取或设置要对数据源执行的 Transact-SQL 语句.表名或存储过程. CommandTimeout 获取或设置在终止执行命令的尝试并生成错误之前的等待时间.  CommandType 获取或设置一个值,该值指示释 CommandText 是SQL语句,存

SqlCommand类

一.常用属性 CommandText 获取或设置要对数据源执行的 Transact-SQL 语句.表名或存储过程. CommandTimeout 获取或设置在终止执行命令的尝试并生成错误之前的等待时间.  CommandType 获取或设置一个值,该值指示释 CommandText 是SQL语句,存储过程还是表操作. Connection 获取或设置 SqlCommand 的此实例使用的 SqlConnection. Parameters 获取 SqlParameterCollection. T