琪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日

悬赏问题

  • ¥15 对于知识的学以致用的解释
  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败