예제 #1
0
        /// <summary>
        /// 传入一个SQL代码 返回DataSet
        ///  </summary>
        /// <param name="sql">参数SQL 输入SQL语句</param>
        /// <returns>返回一个填充过的DataSet</returns>
        public DataSet SqlataSet(string sql)
        {
            if (MySql.State == ConnectionState.Open)//ConnectionState 得到當前資料源聯接的狀態
            {
                MySql.Close();
            }
            SqlDataAdapter MyDa = new SqlDataAdapter(sql, MySql);//新建DataSet對象

            MyDa.SelectCommand.CommandType = CommandType.Text;
            DataSet MyDs = new DataSet();

            try
            {
                MyDa.Fill(MyDs);
            }
            catch (Exception ex)                         //資料填充時的異常處理
            {
                if (MySql.State == ConnectionState.Open) //ConnectionState 得到當前資料源聯接的狀態
                {
                    MySql.Close();
                }
                MyDs = null;
                Err(ex.Message);
            }
            if (MySql.State == ConnectionState.Open)//ConnectionState 得到當前資料源聯接的狀態
            {
                MySql.Close();
            }

            return(MyDs);
        }
예제 #2
0
        /// <summary>
        /// 调用存贮过程 返回DataSet
        /// </summary>
        /// <param name="storName">存贮过程 名</param>
        public DataSet SqlStor(string storName)
        {
            SqlDataAdapter StoreDa = new SqlDataAdapter(storName, SqlConnStr);

            StoreDa.SelectCommand.CommandType = CommandType.StoredProcedure;//StoredProcedure 为 存贮过程
            DataSet StorDataSet = new DataSet();

            try
            {
                StoreDa.Fill(StorDataSet);
            }
            catch (SqlException ex)
            {
                //清空变量
                StoreDa = null;
                StorDataSet.Clear();
                StorDataSet = null;

                if (MySql.State == ConnectionState.Open)//ConnectionState 得到當前資料源聯接的狀態
                {
                    MySql.Close();
                }
                Err(ex.Message);
            }

            if (MySql.State == ConnectionState.Open)//ConnectionState 得到當前資料源聯接的狀態
            {
                MySql.Close();
            }

            StoreDa = null;

            return(StorDataSet);
        }
예제 #3
0
        /// <summary>
        /// 调用带参数的 存贮过程 返回DataSet
        /// </summary>
        ///     ///设计思路
        ///*
        /// * 参数1, 所有参数的参数名 如 @parentId=0,parame2 = aspx 以,分开
        /// * 所有参数为String 数据类型
        /// * string StoreName,string pareme
        /// * 拆分字符串一定要使用单引号 ' ' "a a".Split(' ');
        /// *
        /// <param name="storName">调用的 存贮过程 名</param>
        /// <param name="tempparam">存贮过程 的 参数 多个参数以 " , " 格开 参数的值 用" = " 如:@p=12 参数格式为: @parentId=0,parame2 = aspx  </param>
        public DataSet SqlParameStor(string storName, string tempparam)
        {
            DataSet Stored_Ds = new DataSet();

            string[] StorPar;//拆分参数的数组  拆分 Tempparam

            try
            {
                SqlDataAdapter SqlSA_Stored = new SqlDataAdapter();
                SqlSA_Stored.SelectCommand             = new SqlCommand();              //建立sqlCommand 类的新实例
                SqlSA_Stored.SelectCommand.Connection  = new SqlConnection(SqlConnStr); //初始化connection 属性
                SqlSA_Stored.SelectCommand.CommandText = storName;                      //StorName 为存贮过程 或  存贮过程('参数1',参数2)


                SqlSA_Stored.SelectCommand.CommandType = CommandType.StoredProcedure; //StoredProcedure 为指定数据操作方法为"调用存贮过程"

                if (tempparam.IndexOf(",") > -1 && tempparam != "")                   //看看此字符串能不能拆分
                {
                    StorPar = tempparam.Split(',');                                   //以' , ' 拆分字符串返回数组

                    /*
                     *动态创建 存贮过程 参数 和 对应的值
                     * StorPar[i].Split('=')[0].ToString();为拆分后的 参数;
                     * StorPar[i].Split('=')[1].ToString();为拆分后的 参数值;
                     */
                    for (int i = 0; i < StorPar.Length; i++)
                    {
                        SqlSA_Stored.SelectCommand.Parameters.Add(StorPar[i].Split('=')[0].ToString(), SqlDbType.Char);                         //添加一上参数
                        SqlSA_Stored.SelectCommand.Parameters[StorPar[i].Split('=')[0].ToString()].Value = StorPar[i].Split('=')[1].ToString(); //设定这个参数对应的值
                    }
                }
                else//单个参数时执行
                {
                    string[] StorParValue;

                    StorParValue = tempparam.Split('=');                                                                  //单个时只以等号拆分

                    SqlSA_Stored.SelectCommand.Parameters.Add(StorParValue[0].ToString(), SqlDbType.Char);                //添加一上参数
                    SqlSA_Stored.SelectCommand.Parameters[StorParValue[0].ToString()].Value = StorParValue[1].ToString(); //设定这个参数对应的值
                }


                SqlSA_Stored.Fill(Stored_Ds);// 存贮过程 数据,映照到 临时表  TempTable 中

                SqlSA_Stored = null;
            }
            catch (Exception ex)
            {
                Stored_Ds.Clear();
                Err(ex.Message);
            }

            if (MySql.State == ConnectionState.Open)//ConnectionState 得到當前資料源聯接的狀態
            {
                MySql.Close();
            }
            return(Stored_Ds);
        }
예제 #4
0
        public static DataTable GetRemoteDataTable(string command, MySql.Data.MySqlClient.MySqlConnection msqConn)
        {
            DataTable rdt = new DataTable();

            try
            {
                msqConn.Open();

                MySql.Data.MySqlClient.MySqlCommand uploaderCmd = new MySql.Data.MySqlClient.MySqlCommand(command, msqConn);
                MySql.Data.MySqlClient.MySqlDataReader onj = uploaderCmd.ExecuteReader();

                bool colWasPerf = false;
                int colIdx = 0;
                List<object> rowValues = new List<object>();
                foreach (System.Data.Common.DbDataRecord ro in onj)
                {
                    try
                    {
                        // get fields
                        if (rdt.Columns.Count == 0 && !colWasPerf)
                        {
                            for (colIdx = 0; colIdx < ro.FieldCount; colIdx++)
                                rdt.Columns.Add(ro.GetName(colIdx));
                            colWasPerf = true;
                        }
                    }
                    catch { }

                    try
                    {
                        for (colIdx = 0; colIdx < ro.FieldCount; colIdx++)
                            rowValues.Add(ro[colIdx]);
                    }
                    catch { }

                    try
                    {
                        rdt.Rows.Add(rowValues.ToArray());
                        rowValues.Clear();
                    }
                    catch { }
                }

                onj.Close();

            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }

            if (msqConn.State == System.Data.ConnectionState.Open)
                msqConn.Close();

            return rdt;
        }