iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#如何在窗体程序中操作数据库数据
  • 188
分享到

C#如何在窗体程序中操作数据库数据

2024-04-02 19:04:59 188人浏览 安东尼
摘要

目录一、界面布局二、定义数据库操作的公共类三、在界面中操作数据库方法一、界面布局 界面中有一个dataGridview、两个Button、两个Label和两个TextBox。 二、

一、界面布局

界面中有一个dataGridview、两个Button、两个Label和两个TextBox。

二、定义数据库操作的公共类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.sqlClient;
using System.windows.FORMs;
using System.Data;
using Mysql.Data.mysqlClient;
namespace TemSys
{
   public  class DBCtrl
   {
        private MySqlConnection m_ClientsqlConn;
        public DBCtrl()                                                                          //    连接类型
        {
            m_ClientsqlConn = new MySqlConnection();
            try
            {
                m_ClientsqlConn.Dispose();
                m_ClientsqlConn.Close();              
                m_ClientsqlConn.ConnectionString = "Database=dbName;Data Source=localhost;User Id=root;PassWord=123;charset=utf8";
                m_ClientsqlConn.Open();
            }
            catch (Exception ee)
            {
                MessageBox.Show(ee.Message);
            }
        }
        public DBCtrl(string IP, string DBname, string Uname, string Pword)                     //    创建连接
        {
            m_ClientsqlConn = new MySqlConnection();
            try
            {
                m_ClientsqlConn.Dispose();
                m_ClientsqlConn.Close();
                m_ClientsqlConn.ConnectionString = string.Format("Database={0};Data Source={1};User Id={2};Password={3};charset=utf8", DBname, IP, Uname, Pword);
                m_ClientsqlConn.Open();
            }
            catch (Exception ee)
            {
                MessageBox.Show(ee.Message);
            }
        }
        public void DBConn(string connStr)                                                         //    重载  创建连接
        {
            try
            {
                m_ClientsqlConn.Close();
                m_ClientsqlConn.ConnectionString = connStr;
                m_ClientsqlConn.Open();
            }
            catch (Exception ee)
            {
                MessageBox.Show(ee.Message);
            }
        }
        public DataTable GetDataTable(string SQLstr)                                     //    获取DataTable 一个表
        {
            Console.Write("zcn==获取数据库连接,打开数据库");
            try
            {
                if (m_ClientsqlConn.State == ConnectionState.Open)
                    m_ClientsqlConn.Close();
                m_ClientsqlConn.Open();
                MySqlDataAdapter da = new MySqlDataAdapter(SQLstr, m_ClientsqlConn);
                DataTable resultDS = new DataTable();
                da.Fill(resultDS);
                return resultDS;
            }
            catch (Exception ee)
            {
                Console.Write("zcn==获取数据库连接,打开数据库异常异常");
                //MessageBox.Show( ee.Message);
                m_loGClass.WriteLogFilein(ee.Message, "GetDataTable.txt");
                return null;
            }
            finally
            {
                m_ClientsqlConn.Close();
            }
        }
        public DataTable GetDataTableUsing(string SQLstr)                                     //    获取DataTable 一个表
        {
            using (MySqlConnection m_ClientsqlConn = new MySqlConnection())
            {
            }
            try
            {
                if (m_ClientsqlConn.State == ConnectionState.Open)
                    m_ClientsqlConn.Close();
                m_ClientsqlConn.Open();
                MySqlDataAdapter da = new MySqlDataAdapter(SQLstr, m_ClientsqlConn);
                DataTable resultDS = new DataTable();
                da.Fill(resultDS);
                return resultDS;
            }
            catch (Exception ee)
            {
                //MessageBox.Show( ee.Message);
                return null;
            }
        }
        public List<string> GetStringListfor(string lineName,DataTable dt)    //根据某一列的名字  获取某个集合中该列的所有值
        {
            List<string> list = new List<string>();
            foreach (DataRow dr in dt.Rows)
            {
                list.Add((string)dr[lineName]);
            }
            return list;
        }
        public List<DataRow> GetDataRowfor(DataTable dt)   //根据 datatable  获取每一行的数据的datarow
        {
            List<DataRow> list = new List<DataRow>();
            foreach (DataRow dr in dt.Rows)
            {
                list.Add(dr);  
            }         
            return list;
        }

         public DataTable GetDataTableOneLine(string SQLstr)                                     //    获取DataTable 一个表中一行
        {
            MySqlDataAdapter da = new MySqlDataAdapter(SQLstr, m_ClientsqlConn);
            DataTable resultDS = new DataTable();
            da.Fill(resultDS);
            return resultDS;
        }
        public DataTable GetDataSet_to_Table(string SQLstr)                               //    获取 dataset   多个表中  table
        {
            try
            {
                MySqlDataAdapter da = new MySqlDataAdapter(SQLstr, m_ClientsqlConn);
                DataSet ds = new DataSet();
                da.Fill(ds);
                return ds.Tables[0];
            }
            catch
            {
                return null;
            }
        }
        public Boolean InsertDBase(string insString)
        {
            try
            {
                if (m_ClientsqlConn.State == ConnectionState.Open)
                    m_ClientsqlConn.Close();
                m_ClientsqlConn.Open();
                MySqlCommand sqlcomd = new MySqlCommand(insString, m_ClientsqlConn);
                sqlcomd.ExecuteNonQuery();
                return true;
            }
            catch (Exception ee)
            {
                return false;
            }
            finally
            {
                m_ClientsqlConn.Close();
            }
        }
        public Boolean deleteRowfor(string tablename,int deleteID)  //根据 ID 删除指定行
        {
            try
            {
                string ss ="delete from "+ tablename +" where ID = "+ deleteID;
                if (m_ClientsqlConn.State == ConnectionState.Open)
                    m_ClientsqlConn.Close();
                m_ClientsqlConn.Open();
                MySqlCommand sqlcmd = new MySqlCommand(ss, m_ClientsqlConn);
                sqlcmd.ExecuteNonQuery();
                return true;
            }
            catch(Exception ee)
            {
                return false;
            } 
        }
        public Boolean ModifyRowfor(string modifystr,string modifyID)         // 根据
        {
            try
            {
                string ss = modifystr + " where id = " + modifyID;
                if (m_ClientsqlConn.State == ConnectionState.Open)
                    m_ClientsqlConn.Close();
                m_ClientsqlConn.Open();
                MySqlCommand sqlcmd = new MySqlCommand(ss, m_ClientsqlConn);
                sqlcmd.ExecuteNonQuery();
                return true;
            }
            catch (Exception ee)
            {
                return false;
            }
            finally
            {
                m_ClientsqlConn.Close();
            }
        }
        public void CloseDBase()               //   参数类型  不同数据库连接
        {
            m_ClientsqlConn.Close();
        }
    }
}

三、在界面中操作数据库方法

ps:数据库的配置信息保存在Config.ini文件中,如果仅是测试用的话,可以直接在

m_DataBase = new DBCtrl(ipstr, namestr, usernamestr, passwordstr);

处输入ip地址、数据库名、数据库用户名和密码即可

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace TemSys
{
    public partial class ModifyDevice : Form
    {
        [DllImport("kernel32")]                                        //读写ini文件函数
        private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
        [DllImport("kernel32")]
        private static extern long GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
        DataTable dt = new DataTable();
        private DBCtrl m_DataBase;
        public ModifyDevice()
        {
            InitializeComponent();
        }
        //将所有的textBox值设为空
        private void TextBoxNull()
        {
            textBox1.Text = "";
            textBox2.Text = "";
        }
        //设置Lab值
        private void labelshow()
        {
            label1.Text = dataGridView1.Columns[0].HeaderText;
            label2.Text = dataGridView1.Columns[12].HeaderText;
        }          
        //初始化界面
        private void ModifyDevice_Load(object sender, EventArgs e)
        {
            StringBuilder retval = new StringBuilder();
            GetPrivateProfileString("DBConfig", "dbip", "", retval, 20, AppDomain.CurrentDomain.BaseDirectory + "Config.ini");
            string ipstr = retval.ToString();
            GetPrivateProfileString("DBConfig", "dbname", "", retval, 20, AppDomain.CurrentDomain.BaseDirectory + "Config.ini");
            string namestr = retval.ToString();
            GetPrivateProfileString("DBConfig", "dbusername", "", retval, 20, AppDomain.CurrentDomain.BaseDirectory + "Config.ini");
            string usernamestr = retval.ToString();
            GetPrivateProfileString("DBConfig", "dbpassword", "", retval, 20, AppDomain.CurrentDomain.BaseDirectory + "Config.ini");
            string passwordstr = retval.ToString();
            m_DataBase = new DBCtrl(ipstr, namestr, usernamestr, passwordstr);
            initDataTable();
        }
        private void initDataTable()
        {
            string ssp = string.Format("select * from device_info1");
            dt = m_DataBase.GetDataTable(ssp);
            dataGridView1.DataSource = dt;
            labelshow();
        }
        //双击dataGridView响应事件
        private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            string index = dataGridView1.CurrentRow.Cells[0].Value.ToString();
            if (label1.Text == "id")
            {
                string ssp = string.Format("select * from device_info1 where id='" + index + "'");
                dt = m_DataBase.GetDataTable(ssp); 
                //DataRow row = dt.Rows[0];
                textBox1.Text = dt.Rows[0]["id"].ToString();
                textBox2.Text = dt.Rows[0]["number"].ToString();
            }
        }
        //点击修改按钮响应事件
        private void btnModify_Click(object sender, EventArgs e)
        {
            bool flag = false;
            string ssp = string.Format("update device_info1 set number='" + textBox2.Text + "'");
            flag = m_DataBase.ModifyRowfor(ssp, textBox1.Text);
            if (flag)
            {
                MessageBox.Show("修改成功!");
                initDataTable();
            }
            else
            {
                MessageBox.Show("修改失败!");
            }
        }
        private void btnDelete_Click(object sender, EventArgs e)
        {
             bool flag = false;
            int currentIndex = (int)dataGridView1.CurrentRow.Cells[0].Value;
            Console.WriteLine("输出当前选中数据行:" + currentIndex);
            flag = m_DataBase.deleteRowfor("device_info1", currentIndex);
            if (flag)
            {
                MessageBox.Show("删除成功!");
                initDataTable();
            }
            else
            {
                MessageBox.Show("删除失败!");
            }
        }
    }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: C#如何在窗体程序中操作数据库数据

本文链接: https://www.lsjlt.com/news/146555.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#如何在窗体程序中操作数据库数据
    目录一、界面布局二、定义数据库操作的公共类三、在界面中操作数据库方法一、界面布局 界面中有一个dataGridview、两个Button、两个Label和两个TextBox。 二、...
    99+
    2022-11-13
  • C#怎么在窗体程序中操作数据库数据
    本文小编为大家详细介绍“C#怎么在窗体程序中操作数据库数据”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#怎么在窗体程序中操作数据库数据”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、界面布局界面中有一个d...
    99+
    2023-06-30
  • C#中如何操作Access数据库
    今天就跟大家聊聊有关C#中如何操作Access数据库,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C#操作Access数据库实例演示如下:using System;&nbs...
    99+
    2023-06-17
  • winform窗体如何连接数据库
    要在Winform窗体中连接数据库,您需要执行以下步骤:1. 引用数据库相关的命名空间:```csharpusing System....
    99+
    2023-09-08
    winform 数据库
  • C# 中操作Access数据库显示数据
     C# 中操作Access数据库显示数据        我们将会在上一篇文章的基础上来介绍如何使用数据库  ...
    99+
    2022-10-18
  • JDBC-用程序操作数据库
    驱动:每个数据库厂商对JDBC的接口的实现类。 二、JDBC程序的开发步骤 引入驱动jar 2、编写代码 三、JDBC程序的代码步骤 1、注册驱动 Class.forName("驱动类的全名称"); mysql:com.mysql.jdbc...
    99+
    2017-07-13
    JDBC-用程序操作数据库
  • 数据库中如何操作大数据集
    这篇文章给大家分享的是有关数据库中如何操作大数据集的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 一、子查询插入数据1、语法INSERT INTO table [ column...
    99+
    2022-10-19
  • 数据库在C++程序中的使用方法
    本篇内容主要讲解“数据库在C++程序中的使用方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“数据库在C++程序中的使用方法”吧!栈在编写代码时,堆栈是最常用的数据结构。它的概念简单,编写也比较...
    99+
    2023-06-17
  • 如何在Python中进行数据库操作
    如何在Python中进行数据库操作在当今信息化的时代,数据已经成为了一种非常重要的资源,而数据库的操作就成为了一种必不可少的技能。Python作为一种简单易学的编程语言,也提供了丰富的库和模块来帮助我们进行数据库的操作。本文将介绍如何在Py...
    99+
    2023-10-22
    Python 数据库操作
  • C语言中操作sqlserver数据库案例教程
    本文使用c语言来对sql server数据库进行操作,实现通过程序来对数据库进行增删改查操作。 操作系统:windows 10        ...
    99+
    2022-11-12
  • Python中如何操作数据库
    这篇文章将为大家详细讲解有关Python中如何操作数据库,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。数据库操作基本过程数据库连接对象Connection#...
    99+
    2022-10-18
  • C#开发中如何处理数据库操作错误
    C#开发中如何处理数据库操作错误在C#开发中,数据库操作是一个常见的任务。然而,在进行数据库操作时,可能会遇到各种错误,如连接失败、查询失败、更新失败等。为了保证程序的健壮性和稳定性,在处理数据库操作错误时,我们需要采取相应的策略和措施。以...
    99+
    2023-10-22
    异常处理 错误日志记录 数据库错误处理
  • C语言中怎么操作sqlite3数据库
    这篇文章给大家介绍C语言中怎么操作sqlite3数据库,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。数据库本篇假设数据库为my.db,有数据表student。nonamescore4一口Linux89.0创建表格语句如...
    99+
    2023-06-16
  • Node.js如何操作数据库
    今天小编给大家分享一下Node.js如何操作数据库的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。连接数据库const&nbs...
    99+
    2023-07-04
  • mongoDB4.0如何操作数据库
    这篇文章主要介绍了mongoDB4.0如何操作数据库,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。mongoDB4.0数据库下载:https...
    99+
    2022-10-18
  • .Net中如何操作MySql数据库
    今天就跟大家聊聊有关.Net中如何操作MySql数据库,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  在使用这个类库之前,你必须安装   ODBC...
    99+
    2022-10-18
  • PHP中如何操作MongoDB 数据库
    这期内容当中小编将会给大家带来有关PHP中如何操作MongoDB 数据库,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1,连接MongoDB数据库$conn =...
    99+
    2022-10-18
  • Python中MySQL数据库如何操作
    今天就跟大家聊聊有关Python中MySQL数据库如何操作,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  Python标准数据库接口为Python...
    99+
    2022-10-18
  • VB.NET中如何操作MySql数据库
    这期内容当中小编将会给大家带来有关VB.NET中如何操作MySql数据库,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。VB.NET操作MySql数据库的一个例子对DataSet进行操作Public&nbs...
    99+
    2023-06-17
  • 好程序员分享DDL之操作数据库
      好程序员分享DDL之操作数据库,大家都知道DDL是数据库定义语言,用来定义数据库对象:数据库、表、列等。今天我们就来学习一下。  1.查看所有数据库  查看所有数据库的命令是:show databases;我们在安装mysql数据库服务...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作