DataAdapter执行sql语句获取DataTable数据和@output参数数据

public DataTable GetDataWithOuptDict(SqlCommand sqlcmd, Dictionary<string, object> outPutDict)
        {
            errorInfo.Clear();
            DataTable dataTable = new DataTable();
            SqlDataAdapter dataAdapter = new SqlDataAdapter();
            DataSet dataSet = new DataSet();

            using (sqlcmd.Connection = DBConnectionFactory.GetConnection(CompanyID, IsMigrationDB, MigrateTo))
            {
                try
                {
                    sqlcmd.CommandTimeout = 0;
                    dataAdapter.SelectCommand = sqlcmd;
                    dataAdapter.Fill(dataSet, "Data");
                    dataTable = dataSet.Tables["Data"];
                    var keyList = outPutDict.Keys.ToList();//通过这种方式可以遍历dict并更新其value
                    foreach(var key in keyList)
                    {
                        outPutDict[key] = dataAdapter.SelectCommand.Parameters[key].Value;
                    }
                    errorInfo.HasError = false;
                }
                catch (SqlException e)
                {
                    // Add SQL command to exception to make it easier to debug
                    throw new Exception(sqlcmd.CommandText, e);
                }
            }
            return dataTable;
        }

 

posted @ 2018-03-05 13:41  龍☆  阅读(961)  评论(0)    收藏  举报