Winform连接数据库

Posted songhe123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Winform连接数据库相关的知识,希望对你有一定的参考价值。

1.手动写查询代码

 //1.构造接收数据的集合
            List<ManagerInfo> list = new List<ManagerInfo>();
            //2.从数据库表ManageInfo查询数据
            string connStr = @"data source=C:UsersCHDDesktopItcastCater.db;version = 3;";
            //3.创建对象
            using (SQLiteConnection conn = new SQLiteConnection(connStr))
            {
                //4.创建Command对象
                SQLiteCommand cmd = new SQLiteCommand("select * from ManagerInfo", conn);
                //5.打开链接
                conn.Open();
                //6.执行命令
                SQLiteDataReader reader = cmd.ExecuteReader();
                //7.读取
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        list.Add(new ManagerInfo()
                        {
                            Mid = Convert.ToInt32(reader["mid"]),
                            Mname = reader["mname"].ToString(),
                            Mpwd = reader["mpwd"].ToString(),
                            Mtype = Convert.ToInt32(reader["mtype"])
                        });
                    }
                }
                reader.Close();
                //8.显示在DataGridView上
                dataGridView1.DataSource = list;
            } 

 

2.封装SqliteHelper

 <connectionStrings>
    <add name="itcast" connectionString="data source=C:UsersCHDDesktopItcastCater.db;version = 3;"/>
  </connectionStrings>
public static class SqliteHelper
    {
        //从配置文本中读取连接字符串
        private static string connStr = ConfigurationManager.ConnectionStrings["itcast"].ConnectionString;

        //执行命令的方法:insert,update,delete
        //params:可变参数,目的是省略了手动构造数组的过程,直接指定对象,编译器会帮助我们构造数组,并将对象加入数组中,传递过来
        public static int ExecuteNonQuery(string sql, params SQLiteParameter[] ps)
        {
            //创建连接对象
            using (SQLiteConnection conn = new SQLiteConnection(connStr))
            {
                //创建命令对象
                SQLiteCommand cmd = new SQLiteCommand(sql, conn);
                //添加参数
                cmd.Parameters.AddRange(ps);
                //打开连接
                conn.Open();
                //执行命令,并返回受影响的行数
                return cmd.ExecuteNonQuery();
            }
        }

        //获取首行首列值的方法
        public static object ExecuteScalar(string sql, params SQLiteParameter[] ps)
        {
            using (SQLiteConnection conn = new SQLiteConnection(connStr))
            {
                SQLiteCommand cmd = new SQLiteCommand(sql, conn);
                cmd.Parameters.AddRange(ps);

                conn.Open();
                //执行命令,获取查询结果中的首行首列的值,返回
                return cmd.ExecuteScalar();
            }
        }

        //获取结果集
        public static DataTable GetDataTable(string sql, params SQLiteParameter[] ps)
        {
            using (SQLiteConnection conn = new SQLiteConnection(connStr))
            {
                //构造适配器对象
                SQLiteDataAdapter adapter = new SQLiteDataAdapter(sql, conn);
                //构造数据表,用于接收查询结果
                DataTable dt = new DataTable();
                //添加参数
                adapter.SelectCommand.Parameters.AddRange(ps);
                //执行结果
                adapter.Fill(dt);
                //返回结果集
                return dt;
            }
        }
    }
 private void Form1_Load(object sender, EventArgs e)
        {
            //操作数据库的类
            //连接Connection -> SqliteConnection
            //命令Command
            //适配器DataAdapter
            //DataReader
            //DataSet、DataTable
            dataGridView1.DataSource = SqliteHelper.GetDataTable("select * from ManagerInfo");

        }

 

以上是关于Winform连接数据库的主要内容,如果未能解决你的问题,请参考以下文章

Winform连接数据库

怎么用VS的C#Winform连接sql数据库?

c# winform项目中,如何使用字典代码?

C#中对web程序进行数据库连接配置的问题,有没有winform和webforom通用的办法?

winform的连接字符串

如何在 C# WinForm 桌面应用程序中存储 MySql 数据库连接字符串