SQL数据库操作方法

 
    //执行数据库语句
    public void ExecuteSql(string strSql)
    {
        SqlConnection conn = new SqlConnection(ConnectionString);
       
      
        SqlCommand cmd = new SqlCommand(strSql, conn);

        conn.Open();
        cmd.ExecuteNonQuery();

        conn.Close();

    }

//执行查询 

public DataTable ExcuteSelect(string strSql)
    {

        SqlConnection conn = new SqlConnection(ConnectionString);
    
        conn.Open();
        SqlCommand cmd = new SqlCommand(strSql, conn);
        SqlDataAdapter da = new SqlDataAdapter();
        da.SelectCommand = cmd;
        DataSet ds = new DataSet();
        da.Fill(ds, "table");
        return ds.Tables["table"];
        conn.Close();
    }

  //是否有数据

    public bool HasData(string tablel)
    {

        SqlConnection conn = new SqlConnection(ConnectionString);
        string strSql="select * from ["+tablel+"]";
        conn.Open();
        SqlCommand cmd = new SqlCommand(strSql, conn);
        SqlDataReader dr = cmd.ExecuteReader();
        return dr.Read();
    
    }

  /// <summary>
        /// 创建数据库
        /// </summary>
        /// <param name="db">数据库名</param>
        public void CreateDatabase(string db)
        {        
              if (HasDB(db))
               {
                 MessageBox.Show("数据库"+db+"已经存在");
               }
               else
               {
                
                try
                {
                    SqlConnection conn = new SqlConnection(ConnectionString);
                    string strSql = "create database ["+db+ "]";
                    SqlCommand cmd = new SqlCommand(strSql, conn);

                    conn.Open();
                    cmd.ExecuteNonQuery();
                    MessageBox.Show("创建数据库"+db+ "成功");
                    conn.Close();
                  }
                    
                catch (Exception exp)
                {
                    MessageBox.Show(exp.Message, "创建数据库"+db+"失败");
                }
               
            }
        }
       
    
     /// <summary>
     /// 是否存在数据库
     /// </summary>
     /// <param name="db">数据库名</param>
     /// <returns></returns>
    public bool HasDB(string db)
    {
 
        SqlConnection conn = new SqlConnection(ConnectionString);
        string strSql = "SELECT name FROM sys.databases WHERE name = N'"+db+"';";
        conn.Open();
        SqlCommand cmd = new SqlCommand(strSql, conn);
        SqlDataReader dr = cmd.ExecuteReader();
        return dr.Read();
    
    }

 

    
        /// <summary>
        /// 从指定数据库和表中读取某一列的数据存成一个字符串数据,并以<tab>分隔
        /// </summary>
        /// <param name="db">数据库名</param>
        /// <param name="table_name">表名</param>
        /// <param name="column_name">字段名</param>
        /// <returns>返回一个字符串数据,并以<tab>分隔</returns>

        public string GetColumnData( string db,string table_name, string column_name)         
        {
            //返回值,错误时将返回空值
             string colunm_data = "";
            
            //连接字段值
            StringBuilder col_data = new StringBuilder();

            SqlConnection conn = new SqlConnection(ConnectionString);
           
            //查询语句
            string strSql = "use [" + db + "] select ["+column_name+"] from [" + table_name + "]";
   
       
            //创建sqldataadapter对象
            SqlDataAdapter adp = new SqlDataAdapter(strSql ,conn);
            //创建一个数据集
              DataSet ds = new DataSet();               
                try
                {
                    adp.Fill(ds, table_name);
                }
       
                catch
                {
                    MessageBox.Show ( "数据库查询错误,请重新设置查询条件");
                    adp.Dispose();
                    ds.Dispose();
            
                    return colunm_data;
                }
         
                if (ds.Tables[table_name].Rows.Count == 0)
                {
                     MessageBox.Show ( "在数据库中没有相应的记录");
                    return colunm_data;
                }
                for (int i = 0; i < ds.Tables[table_name].Rows.Count; i++)
                {
                    //取出数据字段的值
                    col_data.Append(ds.Tables[table_name].Rows[i][column_name].ToString() + "/t");
               
                    colunm_data = col_data.ToString();
                }
                if (colunm_data == "")
                {
                    MessageBox.Show ("在数据库中没有相应的记录");
                }
                else
                {
                    MessageBox.Show ("查询成功");
                }
              
                return colunm_data;
                       
            }

/// <summary>
            /// 插入数据到指定索引列
            /// <param name="name">表名</param>
            /// <param name="i">列的索引值</param>
           /// <param name="data">数据</param>
            /// <returns></returns>

            public void InsertColumnData(string table, int i,string data)
            {
           
                try
                {
                    SqlConnection conn = new SqlConnection(ConnectionString);
                    string col="";
                    for (int j = 0; j < i; j++)
                    {
                        col +="' '"+",";
                  
                    }
                    col += "'" + data + "'";
                    string col1 = col;
                    string strSql = "insert into ["+table+"]  values("+col1+"); ";
                    SqlCommand cmd = new SqlCommand(strSql, conn);

                    conn.Open();
                    cmd.ExecuteNonQuery();
                    MessageBox.Show("插入数据成功");
                    conn.Close();
                }

                catch (Exception exp)
                {
                    MessageBox.Show(exp.Message, "插入数据失败");
                }
  

            }
  /// <summary>
            /// 根据某一列满足的指定条件去读取另一列需要的数据,并存成一个字符串数据
            /// </summary>
            /// <param name="table_name">表名</param>
            /// <param name="condition">条件</param>
            /// <param name="conditionColumn">满足条件的列字段名</param>
            /// <param name="column_name">需要的列字段名</param>
            /// <returns>返回一个字符串数据,并以<tab>分隔</returns>

        public string GetConditionColumnData(string table_name,string condition, string conditionColumn, string column_name)
            {
                //返回值,错误时将返回空值
                string column_data = "";

                //连接字段值
                StringBuilder col_data = new StringBuilder();

                SqlConnection conn = new SqlConnection(ConnectionString);

                //查询语句
                string strSql = " select [" + column_name + "] from [" + table_name + "] where "+conditionColumn + "='"+condition+"'";


                //创建sqldataadapter对象
                SqlDataAdapter adp = new SqlDataAdapter(strSql, conn);
                //创建一个数据集
                DataSet ds = new DataSet();
                try
                {
                    adp.Fill(ds, table_name);
                }

                catch
                {
                    MessageBox.Show("数据库查询错误,请重新设置查询条件");
                    adp.Dispose();
                    ds.Dispose();

                    return column_data;
                }

                if (ds.Tables[table_name].Rows.Count == 0)
                {
                    MessageBox.Show("在数据库中没有相应的记录");
                    return column_data;
                }
                for (int i = 0; i < ds.Tables[table_name].Rows.Count; i++)
                {
                    //取出数据字段的值
                    col_data.Append(ds.Tables[table_name].Rows[i][column_name].ToString() + "/t");

                    column_data = col_data.ToString();
                }
                if (column_data == "")
                {
                    MessageBox.Show("在数据库中没有相应的记录");
                }
                else
                {
                    MessageBox.Show("查询成功");
                }

                return column_data;

            }


            /// <summary>
            ///取得一个表中某一列中所有不同的值,返回一个数组~
            /// </summary>
            /// <param name="table_name">表名</param>
            /// <param name="column_name">列字段名</param>
            /// <returns>返回一个数组</returns>
       
           public ArrayList GetDistinctColumnData(string table_name, string column_name)
            {
                 //返回的数组
                ArrayList column_data = new ArrayList();
          

                SqlConnection conn = new SqlConnection(ConnectionString);

                //查询语句
                string strSql = " select distinct [" + column_name + "] from [" + table_name + "] ";


                //创建sqldataadapter对象
                SqlDataAdapter adp = new SqlDataAdapter(strSql, conn);
                //创建一个数据集
                DataSet ds = new DataSet();
                try
                {
                    adp.Fill(ds, table_name);
                }

                catch
                {
                    MessageBox.Show("数据库查询错误,请重新设置查询条件");
                    adp.Dispose();
                    ds.Dispose();

                    return null ;
                }
                if (ds.Tables[table_name].Rows.Count == 0)
                {
                    MessageBox.Show("在数据库中没有相应的记录");
                    return null ;
                }
                for (int i = 0; i < ds.Tables[table_name].Rows.Count; i++)
                {
                 
                        //取出数据字段的值
                        column_data.Add((ds.Tables[table_name].Rows[i][column_name].ToString()));

                   
                }
                if (column_data.Count ==0 )
                {
                    MessageBox.Show("在数据库中没有相应的记录");
                }
                else
                {
                    MessageBox.Show("查询成功");
                }

                return column_data;

            }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值