如何把数据库和C#应用程序连接? (有待分析代码)
各位大牛好,小妹刚刚接触C#,现在遇到这样一个问题:如何把数据库和C#应用程序连接?我的想法很简单,我创建了一个窗口程序,这个程序存放地址是默认的C盘下面.放了一个DataGridView在窗体上,还放了一个Button.
在我的E盘上有一个现成的数据库,数据库里有一堆表格们.数据库名称是MCUDataDataSet,我的意图就是点一下button相应的表格(这里我设的是Data_Rain那张表)就会调出来显示在窗体上.
我的代码是这样的
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.Data.SqlClient;
namespace 连接数据库
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void groupBox1_Enter(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
try
{
//生成连接数据库字符串
string ConStr = "server=(local);database=MCUDataDataSet";
//定义sqlConnection对像实例
SqlConnection con = new SqlConnection(ConStr);
if (con.State == ConnectionState.Open)
{
con.Close();
}
string ConnectionString = "Integrated Security=SSPI;Initial Catalog=;Data Source=localhost;";
con.ConnectionString = ConnectionString;
con.Open();
//定义Select查询语句
string SqlStr = "SELECT * FROM Data_Rain";
SqlDataAdapter ada = new SqlDataAdapter(SqlStr, con);
DataSet ds = new DataSet("Data_rain");
ada.Fill(ds);
//连接数据库表格,显示数据
this.dataGridView1.DataSource = ds.Tables["Data_rain"].DefaultView;
}
catch
{
return;
}
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
Application.Exit();
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
// TODO: 这行代码将数据加载到表“mCUDataDataSet.Data_Rain”中。您可以根据需要移动或删除它。
//this.data_RainTableAdapter.Fill(this.MCUDataDataSet.Data_Rain);
}
}
}
我还在"数据"里连接了我这个数据库.在数据源里是可以看到这个数据库和那一堆表格的.但是我点那个按钮,他就是没有反应.我觉得我应该是哪边没弄对,但是网上查了很多代码都是类似这样的,所以很困惑.哪位大牛能帮帮我,感激不尽!!
--------------------编程问答-------------------- 先看看连接是否对错 --------------------编程问答-------------------- catch里面最好用MessageBox显示一个消息,或者干脆就不抓异常,否则你catch社么都不做,出了异常也不知道, --------------------编程问答-------------------- 先确认连接是否正常,然后看sql是否正确,再看ds.Tables["Data_rain"]中是否有数据 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 问题一 数据库连接字符串有问题 一开始的ConStr指定了数据库 但当你判断连接状态后 你又重新给con指定了一个connectionString 而这个里并没有指定数据库 Initial Catalog是空的
问题二 你的查询结果并没有填充到你的DataSet中 所以你的DataSet里很可能是一张空表 既然是空表的话 datagridview里就什么都没有啦 建议调用ada的Fill方法把你的查询结果填充至DataSet --------------------编程问答-------------------- //连接数据库表格,显示数据
this.dataGridView1.DataSource = ds.Tables["Data_rain"].DefaultView;
this.dataGridView1.Databind(); --------------------编程问答--------------------
winform不需要Databind webform需要这样做 --------------------编程问答-------------------- 楼主很明显是winform程序 --------------------编程问答-------------------- 1.try catch
try
{
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString())
}
2.断点调试你的程序看下你的dataset里面有没有数据。 --------------------编程问答-------------------- DataSet ds = new DataSet();
ada.Fill(ds);
//连接数据库表格,显示数据
this.dataGridView1.DataSource = ds.Tables[0]; --------------------编程问答-------------------- 调试本地数据的话测试不是很方便,我可以帮你远程搞下 --------------------编程问答-------------------- sqlconnection con=new sqlconnection(server=./;database=数据库名;uid=你的数据库用户名;pwd=你的数据库密码);
con.open();
SqlDataAdapter sda = new SqlDataAdapter(数据库语句(要填充的内容), con);
DataSet resultDS = new DataSet();
sda.Fill(resultDS,表名); //填充
dgv.datasource=resultDS.tables[0]; //绑定
手打,也许有不对的地方 --------------------编程问答-------------------- LZ 变量ConnectionString 中Initial Catalog为空了 --------------------编程问答-------------------- 哇,一天就这么多回复,谢谢大家了!因为白天不能上外网,现在才看到,马上就来根据大家说的排查一下。这真是个好地方
补充:.NET技术 , C#