Newer
Older
LSPipeline / OledbHelper.cs
wxn on 1 Dec 2016 5 KB first
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.OleDb;
using System.Windows.Forms;

using System.Data.SqlClient;

namespace WorldGIS
{
    class OledbHelper
    {
        public static DataTable QueryTable(string cmdText,DatabaseConnectParams connectParams)
        {
            SqlConnection conn = OledbHelper.getSqlConnection(connectParams);
            if (conn == null)
            {
                return null;
            }
            try
            {
                conn.Open();
                SqlCommand sqlCmd = conn.CreateCommand();
                sqlCmd.CommandText = cmdText;
                SqlDataReader sqlReader = sqlCmd.ExecuteReader();

                DataTable table = new DataTable();
                table.Load(sqlReader);

                sqlReader.Close();
                conn.Close();

                return table;
            }
            catch (Exception ex)
            {
                Log.PublishTxt(ex);
                MessageBox.Show(ex.Message, "提示");
                return null;
            }
            finally
            {
                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
            }
        }
        public static int ExecuteNonQuery(string cmdText, DatabaseConnectParams connectParams)
        {
            OleDbConnection oleConn = new OleDbConnection("Data Source=" + connectParams.ip + ";Initial Catalog=" + connectParams.databaseName 
                + ";Persist Security Info=True;User ID=" + connectParams.userName + ";pwd=" + connectParams.password + "");
            OleDbCommand oleCmd = new OleDbCommand();
            oleCmd.Connection = oleConn;
            oleCmd.CommandText = cmdText;
            int rowCount = 0;
            try
            {
                oleConn.Open();
                rowCount = oleCmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                Log.PublishTxt(ex);
                MessageBox.Show(ex.Message, "提示");
            }
            finally
            {
                if (oleConn.State == ConnectionState.Open)
                {
                    oleConn.Close();
                }
            }
            return rowCount;
        }
        
        public static SqlConnection getSqlConnection(string dbServer, string databaseName, string userName, string password)
        {
            try
            {
                SqlConnection conn = new SqlConnection("Server=" + dbServer + ";Database=" + databaseName + ";User ID=" + userName + ";pwd=" + password + ";Trusted_Connection=false");
                return conn;
            }
            catch (Exception ex)
            {
                Log.PublishTxt(ex);
                MessageBox.Show(ex.Message, "提示");
                return null;
            }
        }
        public static SqlConnection getSqlConnection(DatabaseConnectParams connectParams)
        {
            if (connectParams == null)
            {
                return null;
            }
            try
            {
                SqlConnection conn = new SqlConnection("Server=" + connectParams.ip + ";Database=" + connectParams.databaseName 
                    + ";User ID=" + connectParams.userName + ";pwd=" + connectParams.password + ";Trusted_Connection=false");
                return conn;
            }
            catch (Exception ex)
            {
                Log.PublishTxt(ex);
                MessageBox.Show(ex.Message, "提示");
                return null;
            }
        }

        public static int sqlExecuteNonQuery(string sql, DatabaseConnectParams connectParams)
        {
            SqlConnection conn = OledbHelper.getSqlConnection(connectParams);
            if (conn == null)
            {
                return 0;
            }
            SqlCommand sqlCmd = conn.CreateCommand();
            sqlCmd.CommandText = sql;
            int rowCount = 0;
            try
            {
                conn.Open();
                rowCount = sqlCmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                Log.PublishTxt(ex);
                MessageBox.Show(ex.Message, "提示");
            }
            finally
            {
                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
            }
            return rowCount;
        }
        public static int ExecuteScalar(string sql, DatabaseConnectParams connectParams)
        {
            SqlConnection conn = OledbHelper.getSqlConnection(connectParams);
            if (conn == null)
            {
                return 0;
            }
            SqlCommand sqlCmd = conn.CreateCommand();
            sqlCmd.CommandText = sql;
            int num = 0;
            try
            {
                conn.Open();
                num = Convert.ToInt32(sqlCmd.ExecuteScalar().ToString());
            }
            catch (Exception ex)
            {
                Log.PublishTxt(ex);
                num = -1;
                MessageBox.Show(ex.Message, "提示");
            }
            finally
            {
                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
            }
            return num;
        }
    }
}