C# sql操作类问题

zouyong3868 2017-02-21 03:21:40
/// <summary>
/// 填充一个数据集对象并返回之
/// </summary>
/// <param name="cmdText">数据库命令字符串</param>
/// <param name="cmdType">命令执行方式</param>
/// <param name="ParametersList">参数</param>
/// <returns>数据集对象</returns>
private DataSet GetDataSet(string cmdText, CommandType cmdType, Dictionary<string, object> ParametersList)
{
DataSet ds = new DataSet();
using (DbConnection conn = provider.CreateConnection())
{
var cmd = conn.CreateCommand();
PrepareCommand(conn, cmd, cmdText, cmdType, ParametersList);
using (DbDataAdapter da = provider.CreateDataAdapter())
{
da.SelectCommand = cmd;
try
{
da.Fill(ds);
return ds;
}
catch (Exception ex)
{
WriteErrorLog(ex, cmdText, ParametersList);
throw new Exception(ex.Message, ex);
}
}
}
}

正在学些数据库,这个方法的后两个参数是什么意思 cmdtype,ParametersList,这个方法是网上看的一个sql操作类
...全文
135 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zouyong3868 2017-02-21
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
    //
    // 摘要:
    //     指定如何解释命令字符串。
    public enum CommandType
    {
        //
        // 摘要:
        //     SQL 文本命令。(默认。)
        Text = 1,
        //
        // 摘要:
        //     存储过程的名称。
        StoredProcedure = 4,
        //
        // 摘要:
        //     表的名称。
        TableDirect = 512
    }
ParametersList是Sql参数字典
是枚举类型 那么 ParametersList 这个参数怎么使用???
引用 4 楼 u011981242 的回复:
cmdtype是sql语句类型,1楼给出了源码定义,cmdtype一般默认使用CommandType.Text ParametersList时sql字段参数,这里做成dictionary的字典数组了而已 你的这个方法修改下为:
 /// <summary>
        /// 填充一个数据集对象并返回之
        /// </summary>
        /// <param name="cmdText">数据库命令字符串</param>
        /// <param name="cmdType">命令执行方式</param>
        /// <param name="ParametersList">参数</param>
        /// <returns>数据集对象</returns>
        private DataSet GetDataSet(string cmdText, CommandType cmdType=CommandType.Text, Dictionary<string, object> ParametersList)
        {
            DataSet ds = new DataSet();
            using (DbConnection conn = provider.CreateConnection())
            {
                var cmd = conn.CreateCommand();
                PrepareCommand(conn, cmd, cmdText, cmdType, ParametersList);
                using (DbDataAdapter da = provider.CreateDataAdapter())
                {
                    da.SelectCommand = cmd;
                    try
                    {
                        da.Fill(ds);
                        return ds;
                    }
                    catch (Exception ex)
                    {
                        WriteErrorLog(ex, cmdText, ParametersList);
                        throw new Exception(ex.Message, ex);
                    }
                }
            }
           return ds;
        }
引用举例:
Dictionary<string, object> ParametersList = new Dictionary<string, object>();
            ParametersList.Add("john", (object)"male");
            string sql = @"insert into 读者 values(@Name,@Sex)";
            DataSet ds = new DataSet();
            ds = Tool.SqlHelper.GetDataSet(sql,CommandType.Text, ParametersList);
有什么入门的书籍推荐吗?SQL server 还熟悉一点,C#正准备入门
  • 打赏
  • 举报
回复
cmdtype是sql语句类型,1楼给出了源码定义,cmdtype一般默认使用CommandType.Text ParametersList时sql字段参数,这里做成dictionary的字典数组了而已 你的这个方法修改下为:
 /// <summary>
        /// 填充一个数据集对象并返回之
        /// </summary>
        /// <param name="cmdText">数据库命令字符串</param>
        /// <param name="cmdType">命令执行方式</param>
        /// <param name="ParametersList">参数</param>
        /// <returns>数据集对象</returns>
        private DataSet GetDataSet(string cmdText, CommandType cmdType=CommandType.Text, Dictionary<string, object> ParametersList)
        {
            DataSet ds = new DataSet();
            using (DbConnection conn = provider.CreateConnection())
            {
                var cmd = conn.CreateCommand();
                PrepareCommand(conn, cmd, cmdText, cmdType, ParametersList);
                using (DbDataAdapter da = provider.CreateDataAdapter())
                {
                    da.SelectCommand = cmd;
                    try
                    {
                        da.Fill(ds);
                        return ds;
                    }
                    catch (Exception ex)
                    {
                        WriteErrorLog(ex, cmdText, ParametersList);
                        throw new Exception(ex.Message, ex);
                    }
                }
            }
           return ds;
        }
引用举例:
Dictionary<string, object> ParametersList = new Dictionary<string, object>();
            ParametersList.Add("john", (object)"male");
            string sql = @"insert into 读者 values(@Name,@Sex)";
            DataSet ds = new DataSet();
            ds = Tool.SqlHelper.GetDataSet(sql,CommandType.Text, ParametersList);
正怒月神 2017-02-21
  • 打赏
  • 举报
回复
/// <param name="cmdType">命令执行方式</param> /// <param name="ParametersList">参数</param> 其实注释已经写了。 cmdType说明可能是存储过程,可能是sql字符串,同1楼说的,是你传入的sql命令的类型 ParametersList 是参数化设置的一个泛型集合。意思sql语句中带有变量,参数 话说,既然楼主既然刚开始学习数据库,那我不建议你去下载网上的sqlhelper类, 应该试着自己把 增删改查的语句写几遍,熟悉后,在用别人封装的sqlhelper类
大然然 2017-02-21
  • 打赏
  • 举报
回复
PrepareCommand(conn, cmd, cmdText, cmdType, ParametersList);干的事情应该是 遍历Dictionary<string, object> ParametersList, 把里面的key,value组成sqlParameter,然后放在你的sqlcommand里
  • 打赏
  • 举报
回复
    //
    // 摘要:
    //     指定如何解释命令字符串。
    public enum CommandType
    {
        //
        // 摘要:
        //     SQL 文本命令。(默认。)
        Text = 1,
        //
        // 摘要:
        //     存储过程的名称。
        StoredProcedure = 4,
        //
        // 摘要:
        //     表的名称。
        TableDirect = 512
    }
ParametersList是Sql参数字典

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧