琪y 2022-04-05 21:00 采纳率: 100%
浏览 32
已结题

c#连接数据库,打不开数据库

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Data.SqlClient;

namespace WpfApplication1
{

public partial class MainWindow : Window
{
    public MainWindow ()
    {
        InitializeComponent ();
    }
    public class ConnDb

    {
        OleDbConnection conn = null;//连接数据库的对象

        //下面是构造函数连接数据库

        public ConnDb ()

        {
            if (conn == null)//判断连接是否为空

            {
                conn = new OleDbConnection ();

                conn.ConnectionString = "provider=sqloledb.1;data source=.;initial catalog=capucivar;user id=sa;pwd=";//连接数据库的字符串 }

                if (conn.State == ConnectionState.Closed)

                {
                    conn.Open ();//打开数据库连接

                }
            }
        }

//下面这个方法是从数据库中查找数据的方法

        public DataSet query (string sql)

        {
            DataSet ds = new DataSet ();//DataSet是表的集合

            OleDbDataAdapter da = new OleDbDataAdapter (sql, conn);//从数据库中查询

            da.Fill (ds);//将数据填充到DataSet

            connClose ();//关闭连接

            return ds;//返回结果

        }

        //下面的方法是对数据库进行更新

        public int update (string sql)

        {
            OleDbCommand oc = new OleDbCommand ();//表示要对数据源执行的SQL语句或存储过程

            oc.CommandText = sql;//设置命令的文本

            oc.CommandType = CommandType.Text;//设置命令的类型

            oc.Connection = conn;//设置命令的连接

            int x = oc.ExecuteNonQuery ();//执行SQL语句

            connClose ();//关闭连接

            return x;   //返回一个影响行数

        }

        //下面的connClose()方法是关闭数据库连接

        public void connClose ()

        {
            if (conn.State == ConnectionState.Open)

            {//判断数据库的连接状态,如果状态是打开的话就将它关闭

                conn.Close ();
            }
        }
    }
    private void button_Click (object sender, RoutedEventArgs e)
    {
        string uname = this.textBox.Text; string upass = this.textBox1.Text;

        string sql = string.Format ("insert into users values('{0}','{1}')", uname, upass);//拼写sql语句将该用户信息插入到数据库中

        int x = new ConnDb ().update (sql);//通过ConnDb()对象的update()方法执行sql语句并返回一个影响行数

        if (x > 0)

        {//如果影响行数大于0则说明插入成功,否则的话插入失败

            MessageBox.Show ("添加成功!");

        }
        else
        {

            MessageBox.Show ("添加失败!");

        }
    }
    public void refurbish ()

    {
        string sql = "select * from users";//sql语句查询数据

        DataSet ds = new ConnDb ().query (sql);//查询返回一个DataSet

        this.listBox.DisplayMemberPath = "username";//listBox中要显示的列
        
        this.listBox.DataContext = ds.Tables[0];// listBox的数据源

    }

    private void button1_Click (object sender, RoutedEventArgs e)
    {
        {
            string uname = this.listBox.ToString();//得到listBox中所选的值

            string sql = string.Format ("delete from users where username='{0}'", uname);//拼写sql语句删除用户

            int x = new ConnDb ().update (sql);//调用update()方法返回影响行数

            if (x > 0)

            {//根据返回的影响行数判断删除是否成功

                MessageBox.Show ("删除成功!");

            }
            else
            {

                MessageBox.Show ("删除失败!");
            }
        }
    }

    private void button2_Click (object sender, RoutedEventArgs e)
    {

    }
}

}

这个源代码来自在“”https://developer.51cto.com/article/115491.html
纯不懂,所以是全抄的

  • 写回答

1条回答 默认 最新

  • 关注

    你本地没这个库吧

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月30日
  • 已采纳回答 9月22日
  • 创建了问题 4月5日

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装