企业库4.0还是好用

本文详细介绍了如何使用C#语言结合ADO.NET技术创建和获取用户数据,包括创建用户、查询用户信息等核心功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Practices.EnterpriseLibrary.Data;
using System.Data.Common;

namespace cnblog.DAL
{
    public class CnblogUserDal
    {
        public void CreateUser( string username, string password, string displayName, string email, string gender )
        {
            string sql = @"insert into [User](userName ,password ,displayName ,Email ,gender)
                              values( @Name ,@password ,@displayName ,@Email ,@gender)";

            Database db = DatabaseFactory.CreateDatabase( "blog" );
            DbCommand command = db.GetSqlStringCommand( sql );
            db.AddInParameter( command, "name", System.Data.DbType.String, username );
            db.AddInParameter( command, "password", System.Data.DbType.String, password );
            db.AddInParameter( command, "displayName", System.Data.DbType.String, displayName );
            db.AddInParameter( command, "email", System.Data.DbType.String, email );
            db.AddInParameter( command, "gender", System.Data.DbType.String, gender );

            db.ExecuteNonQuery( command );
        }

        public cnblog.Model.cnblogUser GetUser( string username )
        {
            cnblog.Model.cnblogUser user = null;
            string sql = "select userName ,displayName ,Email ,gender from User where user=@userName";

            Database db = DatabaseFactory.CreateDatabase( "blog" );
            DbCommand command = db.GetSqlStringCommand( sql );
            db.AddInParameter( command, "name", System.Data.DbType.String, username );

            using ( System.Data.IDataReader reader = db.ExecuteReader( command ) )
            {
                if ( reader.Read() )
                {
                    user = new Model.cnblogUser(
                        reader.GetString( 0 ),
                        reader.GetString( 1 ),
                        reader.GetString( 2 ),
                        reader.GetString( 3 )
                        );
                }
            }
            return user;
        }
    }
}

连接串:

<!--<add name ="blog" connectionString="Data Source=192.168.1.101;Initial Catalog=cnblogs;user id=sa;password=sa"/>连接不了-->
<!--<add name ="blog" connectionString="Data Source=192.168.1.101;Initial database=cnblogs;user id=sa;password=sa"/>连接不了-->
<!--<add name ="blog" connectionString="Data Source=192.168.1.101; Catalog=cnblogs;user id=sa;password=sa"/>连接不了-->
<!--<add name ="blog" connectionString="Data Source=192.168.1.101; database=cnblogs;user id=sa;password=sa"/>连接不了-->
<!--<add name ="blog" connectionString="Data Source=192.168.1.101;Initial database=cnblogs;Integrated Security=True" providerName="System.Data.SqlClient"/>连接不了-->
<add name ="blog" connectionString="Data Source=192.168.1.101;Initial Catalog=cnblogs;Integrated Security=True" providerName="System.Data.SqlClient"/>

 

测试代码
using cnblog.DAL;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using cnblog.Model;

namespace cnblog.DALTest
{
    /// <summary>
    ///这是 CnblogUserDalTest 的测试类,旨在
    ///包含所有 CnblogUserDalTest 单元测试
    ///</summary>
    [TestClass( )]
    public class CnblogUserDalTest
    {


        private TestContext testContextInstance;

        /// <summary>
        ///获取或设置测试上下文,上下文提供
        ///有关当前测试运行及其功能的信息。
        ///</summary>
        public TestContext TestContext
        {
            get
            {
                return testContextInstance;
            }
            set
            {
                testContextInstance = value;
            }
        }

        #region 附加测试特性
        //
        //编写测试时,还可使用以下特性:
        //
        //使用 ClassInitialize 在运行类中的第一个测试前先运行代码
        //[ClassInitialize()]
        //public static void MyClassInitialize(TestContext testContext)
        //{
        //}
        //
        //使用 ClassCleanup 在运行完类中的所有测试后再运行代码
        //[ClassCleanup()]
        //public static void MyClassCleanup()
        //{
        //}
        //
        //使用 TestInitialize 在运行每个测试前先运行代码
        //[TestInitialize()]
        //public void MyTestInitialize()
        //{
        //}
        //
        //使用 TestCleanup 在运行完每个测试后运行代码
        //[TestCleanup()]
        //public void MyTestCleanup()
        //{
        //}
        //
        #endregion


        /// <summary>
        ///CnblogUserDal 构造函数 的测试
        ///</summary>
        [TestMethod( )]
        public void CnblogUserDalConstructorTest( )
        {
            CnblogUserDal target = new CnblogUserDal( );
            Assert.Inconclusive( "TODO: 实现用来验证目标的代码" );
        }

        /// <summary>
        ///CreateUser 的测试
        ///</summary>
        [TestMethod( )]
        public void CreateUserTest( )
        {
            CnblogUserDal target = new CnblogUserDal( ); // TODO: 初始化为适当的值
            string username = "yy"; // TODO: 初始化为适当的值
            string password = "xx"; // TODO: 初始化为适当的值
            string displayName = "mm"; // TODO: 初始化为适当的值
            string email = "ee"; // TODO: 初始化为适当的值
            string gender = "男"; // TODO: 初始化为适当的值
            target.CreateUser( username, password, displayName, email, gender );
            Assert.Inconclusive( "无法验证不返回值的方法。" );
        }

        /// <summary>
        ///GetUser 的测试
        ///</summary>
        [TestMethod( )]
        public void GetUserTest( )
        {
            CnblogUserDal target = new CnblogUserDal( ); // TODO: 初始化为适当的值
            string username = "yy"; // TODO: 初始化为适当的值
            cnblogUser expected = null; // TODO: 初始化为适当的值
            cnblogUser actual;
            actual = target.GetUser( username );
            Assert.AreEqual( expected, actual );
            Assert.Inconclusive( "验证此测试方法的正确性。" );
        }
    }
}

 

转载于:https://www.cnblogs.com/yuan-2012/archive/2012/08/10/2631155.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值