c#对数据库操作

本文介绍了一种基于SQL的数据操作方法,包括连接数据库、执行查询与更新操作、获取数据集和单个值等功能,并提供了批量处理数据集的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 private void open()
        {
            string connstring = "Data Source=(local);Initial Catalog=OurShop;User=shihai1991;pwd=shihai315725";
            connection = new SqlConnection(connstring);
            connection.Open();
        }


        /// <summary>
        /// 关闭数据库
        /// </summary>
        private void close()
        {
            connection.Dispose();
            connection.Close();
            connection = null;
        }


        /// <summary>
        /// 输入SQL命令,得到DataReader对象
        /// </summary>
        /// <param name="sqlstring"></param>
        /// <returns></returns>
        public SqlDataReader GetDataRearer(string sqlstring)
        {
            open();
            SqlCommand mycom = new SqlCommand(sqlstring, connection);
            SqlDataReader Dr = mycom.ExecuteReader();
            return Dr;
        }


        public DataSet GetDataSet(string sqlstgring)
        {
            open();
            SqlCommand mycom = new SqlCommand(sqlstgring, connection);
            SqlDataAdapter adapter = new SqlDataAdapter();
            adapter.SelectCommand = mycom;
            DataSet dataSet = new DataSet();
            adapter.Fill(dataSet);
            close();
            return dataSet;
        }


        /// <summary>
        /// 执行非查询SQL命令
        /// </summary>
        /// <param name="sqlstring"></param>
        /// <returns></returns>
        public int ExecuteSQL(string sqlstring)
        {
            int count = -1;
            open();
            try
            {
                SqlCommand cmd = new SqlCommand(sqlstring, connection);
                count = cmd.ExecuteNonQuery();
            }
            catch
            {
                count = -1;
            }
            finally
            {
                close();
            }
            return count;
        }


        /// <summary>
        /// 输入SQL命令,检查数据表中是否有该数据信息
        /// </summary>
        /// <param name="sqlstring"></param>
        /// <returns></returns>
        public int GetdataRow(string sqlstring)
        {
            int CountRow = 0;
            open();
            SqlCommand mycom = new SqlCommand(sqlstring, connection);
            SqlDataAdapter da = new SqlDataAdapter();
            da.SelectCommand = mycom;
            DataSet ds = new DataSet();
            da.Fill(ds);
            ds.CaseSensitive = false;
            //取行集合中的元素的总数
            CountRow = ds.Tables[0].Rows.Count;
            close();
            return CountRow;
        }


        /// <summary>
        /// 输入SQL命令,得到DataTable对象
        /// </summary>
        /// <param name="sqlstring"></param>
        /// <returns></returns>
        public DataTable GetDataTable(string sqlstring)
        {
            DataSet ds = GetDataSet(sqlstring);
            DataTable dt = new DataTable();
            dt = ds.Tables[0];
            return dt;
        }


        /// <summary>
        /// 获取单个值
        /// </summary>
        /// <param name="sqlstring"></param>
        /// <returns></returns>
        public object GetScalar(string sqlstring)
        {
            open();
            SqlCommand mycom = new SqlCommand(sqlstring, connection);
            object result = mycom.ExecuteScalar();
            close();
            return result;
        }


        /// <summary>
        /// 对整体数据集实施批量处理;一般用于列表等对象
        /// </summary>
        /// <param name="ds"></param>
        /// <param name="sql"></param>
        /// <param name="tableName"></param>
        /// <returns></returns>
        public bool doUpdata(DataSet ds, string sql, string tableName)
        {
            bool flag = false;
            open();
            //非强制资源清理,清理非托管资源和不受资源和不受GC控制的资源。Using结束后会隐式的调用Disposable方法
            using (SqlDataAdapter da = new SqlDataAdapter(sql, connection))
            {
                //数据库表一定要有主键列,否则此处无法通过
                SqlCommandBuilder builder = new SqlCommandBuilder(da);
                try
                {
                    da.Update(ds, tableName);
                    flag = true;
                }
                catch (System.Exception e)
                {
                    throw new Exception(e.Message);
                }
            }
            close();
            return flag;
        }


        public ArrayList GetListArray(string sqlstring, int m)
        {
            //创建ArrayList对象
            ArrayList array = new ArrayList();
            SqlDataReader dr = GetDataRearer(sqlstring);
            while(dr.Read())    //遍历所有的结果集
            {
                //取到结果集索引的第0列的值并添加到ArrayList对象中
                array.Add(dr.GetValue(m));
            }
            //返回ArrayList对象
            return array;
        }


    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值