• Microsoft.Practices.EnterpriseLibrary.Data 使用[转载]


    Database db = null;


    #region 一般调用
    db
    = DatabaseFactory.CreateDatabase("Connection String");
    int count = (int)db.ExecuteScalar(CommandType.Text, "SELECT Count(*) From cms_company");
    string message = string.Format("There are {0} customers in the database", count.ToString());
    Response.Write(message);
    #endregion


    #region 带返回参数,返回值和返回数据集,一般参数的存储过程
    //CREATE PROCEDURE [dbo].[kword]
    //@kword varchar(250)='',
    //@top int,
    //@otop varchar(250) output
    //As
    //select top 10 * from Table1 where ntitle like '%'+@kword+'%' and id>@top
    //declare @flag int
    //select @flag=100
    //SET @otop='返回值'
    //return @flag
    db = DatabaseFactory.CreateDatabase("serverConnectionString");//连接字符串变量名
    DbCommand dbcomm = db.GetStoredProcCommand("kword");//存储过程名
    db.AddInParameter(dbcomm, "@kword", DbType.String, "创业");//参数名 类型 值
    db.AddInParameter(dbcomm, "top", DbType.Int32, 2);//参数名 类型 值
    db.AddOutParameter(dbcomm, "otop", DbType.String, 250);//output参数名 类型 长度
    //关键在这里,添加一个参数@RETURN_VALUE 类型为ReturnValue
    db.AddParameter(dbcomm, "@RETURN_VALUE", DbType.String, ParameterDirection.ReturnValue, "", DataRowVersion.Current, null);
    DataSet ds
    = db.ExecuteDataSet(dbcomm);//必须有执行的动作后面才能获取值
    //title = (string)db.ExecuteScalar(dbcomm);如果返回只有一个数据,这样也是可以的
    GridView1.DataSource = ds;
    GridView1.DataBind();

    Response.Write(
    "<br>output输出参数值:" + db.GetParameterValue(dbcomm, "otop").ToString());
    // int testvalue = (int)dbcomm.Parameters["@RETURN_VALUE"].Value; //另一种获取值的方式
    Response.Write("<br />return返回参数值:" + db.GetParameterValue(dbcomm, "RETURN_VALUE").ToString());
    #endregion



    #region 使用事务记录操作数据库
    //CREATE TABLE [dbo].[Table1](
    // [id] [int] IDENTITY(1,1) NOT NULL,
    // [ntitle] [varchar](250) NOT NULL,
    // [valuea] [varchar](250) NULL,
    // CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED
    //(
    // [ntitle] ASC
    //)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    //) ON [PRIMARY]
    db = DatabaseFactory.CreateDatabase("serverConnectionString");
    using (IDbConnection conn = db.CreateConnection())
    {
    conn.Open();
    IDbTransaction _trans
    = conn.BeginTransaction();
    try
    {
    DbCommand _cmd
    = db.GetSqlStringCommand("INSERT INTO [Table1]([ntitle],[valuea]) VALUES(@ntitle,@valuea)");
    db.AddInParameter(_cmd,
    "ntitle", DbType.String, "AA");
    db.AddInParameter(_cmd,
    "valuea", DbType.String, "AA");
    db.ExecuteNonQuery(_cmd, _trans
    as DbTransaction);
    db.ExecuteNonQuery(_cmd, _trans
    as DbTransaction);//ntitle字段上建有唯一索引,故第二次插入同样记录时会报错
    _trans.Commit();
    }
    catch
    {
    try
    {
    _trans.Rollback();
    //事务提交失败时,则回滚(是否回滚成功,可查看表中有无AA的记录即可)
    }
    catch { }
    }
    finally
    {
    conn.Close();
    }
    }
    #endregion

  • 相关阅读:
    SQL Server设置登录验证模式
    怎样更改SQL Server 2008的身份验证方式
    sqlserver服务器名称改成本地IP地址登录
    零基础学python-2.2 输入 input()
    零基础学python-2.1 输出 print()
    零基础学python-1.7 第二个程序 猜数字小游戏
    零基础学python-1.6 错误的程序
    零基础学python-1.5 第一个程序
    零基础学python-1.4 hello world
    零基础学python-1.3 通过idle启动python
  • 原文地址:https://www.cnblogs.com/mic86/p/1968922.html
Copyright © 2020-2023  润新知