返回顶部
首页 > 资讯 > 精选 >C#怎么在窗体程序中操作数据库数据
  • 954
分享到

C#怎么在窗体程序中操作数据库数据

2023-06-30 05:06:31 954人浏览 八月长安
摘要

本文小编为大家详细介绍“C#怎么在窗体程序中操作数据库数据”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#怎么在窗体程序中操作数据库数据”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、界面布局界面中有一个d

本文小编为大家详细介绍“C#怎么在窗体程序中操作数据库数据”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#怎么在窗体程序中操作数据库数据”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

一、界面布局

C#怎么在窗体程序中操作数据库数据

界面中有一个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("删除失败!");            }        }    }}

读到这里,这篇“C#怎么在窗体程序中操作数据库数据”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

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

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

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

猜你喜欢
  • C#怎么在窗体程序中操作数据库数据
    本文小编为大家详细介绍“C#怎么在窗体程序中操作数据库数据”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#怎么在窗体程序中操作数据库数据”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、界面布局界面中有一个d...
    99+
    2023-06-30
  • C#如何在窗体程序中操作数据库数据
    目录一、界面布局二、定义数据库操作的公共类三、在界面中操作数据库方法一、界面布局 界面中有一个dataGridview、两个Button、两个Label和两个TextBox。 二、...
    99+
    2024-04-02
  • c#窗体怎么连接数据库
    在 c# 中连接数据库的步骤:创建连接字符串,包含数据库信息。创建连接对象,使用 sqlconnection 类。打开连接,使用 open() 方法。执行查询或命令,使用 sqlcomm...
    99+
    2024-05-12
    c#
  • c#中怎么操作sqlite数据库
    在C#中操作SQLite数据库需要引用System.Data.SQLite命名空间,然后使用SQLiteConnection和其他相...
    99+
    2024-04-09
    sqlite c#
  • C#怎么操作Access数据库
    本篇内容主要讲解“C#怎么操作Access数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#怎么操作Access数据库”吧!C#操作Access数据库之SELECT操作是如何的呢,...
    99+
    2023-06-17
  • C# 中操作Access数据库显示数据
     C# 中操作Access数据库显示数据        我们将会在上一篇文章的基础上来介绍如何使用数据库  ...
    99+
    2024-04-02
  • JDBC-用程序操作数据库
    驱动:每个数据库厂商对JDBC的接口的实现类。 二、JDBC程序的开发步骤 引入驱动jar 2、编写代码 三、JDBC程序的代码步骤 1、注册驱动 Class.forName("驱动类的全名称"); mysql:com.mysql.jdbc...
    99+
    2017-07-13
    JDBC-用程序操作数据库
  • 怎么在golang中操作mysql数据库
    这篇文章给大家介绍怎么在golang中操作mysql数据库,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Golang操作mysql简介Golang操作mysql数据库的感觉有点想php...
    99+
    2024-04-02
  • 怎么在Python中操作MySQL数据库
    今天就跟大家聊聊有关怎么在Python中操作MySQL数据库,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python主要应用领域有哪些1、云计算,典型应用OpenStack。2、W...
    99+
    2023-06-14
  • 在Qt中怎么操作MySQL数据库
    本篇内容介绍了“在Qt中怎么操作MySQL数据库”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、安装驱动(1)安装在Qt中操作MySQL数...
    99+
    2023-07-05
  • C语言中怎么操作sqlite3数据库
    这篇文章给大家介绍C语言中怎么操作sqlite3数据库,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。数据库本篇假设数据库为my.db,有数据表student。nonamescore4一口Linux89.0创建表格语句如...
    99+
    2023-06-16
  • C#中如何操作Access数据库
    今天就跟大家聊聊有关C#中如何操作Access数据库,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C#操作Access数据库实例演示如下:using System;&nbs...
    99+
    2023-06-17
  • C# MySQL数据库的操作
    文章目录 前言一、MySQL数据库二、使用步骤 1.引入库2.操作方法总结 前言 记录一下MySQL数据库一些简单操作 一、MySQL数据库 MySQL数据库也不用过多介绍,使用非常广泛。优点就是体积小,速度快,非常适合我们...
    99+
    2023-09-05
    c#
  • c#跨窗体传递数据怎么实现
    在C#中,可以通过使用委托来实现跨窗体的数据传递。 首先,在发送数据的窗体中定义一个委托类型和事件,用于传递数据: public d...
    99+
    2024-03-02
    c#
  • C#中怎么实现一个数据库操作类
    这期内容当中小编将会给大家带来有关C#中怎么实现一个数据库操作类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。C#数据库操作类主要包括两类方法:一类用来直接执行SQL语句,另一类用来执行存储过程。其中的数...
    99+
    2023-06-17
  • Java中怎么操作MongoDB数据库
    今天就跟大家聊聊有关Java中怎么操作MongoDB数据库,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java与mongodb的连接1. 连单台m...
    99+
    2024-04-02
  • node.js中怎么操作mysql数据库
    node.js中怎么操作mysql数据库,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。准备工作在使用node操作mysql数据...
    99+
    2024-04-02
  • PHP7中怎么操作MySQL数据库
    PHP7中怎么操作MySQL数据库,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。连接到 MySQL服务器mysqli_connect(host, username, pas...
    99+
    2023-06-20
  • Python中怎么操作MongoDB数据库
    这期内容当中小编将会给大家带来有关Python中怎么操作MongoDB数据库,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、连接服务器连接服务器需要提供一个地址和接口import pymong...
    99+
    2023-06-15
  • VB.NET中怎么操作MySql数据库
    本篇文章为大家展示了VB.NET中怎么操作MySql数据库,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。VB.NET操作MySql的一个例子Public Shared Funct...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作