C#窗体应用程序为什么不能连接数据库。运行程序,未显示连接数据库成功就直接提示该数据不存在。

using System;using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication5{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) {
SqlConnection sc = new SqlConnection();//重载,命名数据。
try//单击button1_Click之后发生的事件
{
sc.ConnectionString = "Data Source=.; Initial Catalog=CJXYMis;User ID=sa;Pwd=1";
sc.Open();
MessageBox.Show("数据库连接成功!");
SqlCommand scm = new SqlCommand();//定义一个新的数据方法。 scm.Connection = sc;//
string x = "select * from DM_GB_XKFLYDM where DM like '" + this.textBox1.Text + "'";
//在DM_GB_XKFLYDM的*(所有列)在textBox1控件的Text中按照DM列查找。
//查找项
scm.CommandText = x;
//查询命令
DataTable table = new DataTable();
//新建虚拟表
SqlDataAdapter sda = new SqlDataAdapter();//
sda.SelectCommand = scm;//
sda.Fill(table);
//
this.dataGridView1.DataSource = table;//
sc.Close();//
}
catch
{
MessageBox.Show("该数据不存在!");
}
} //关闭窗口
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

第1个回答  2013-02-27
那是当然,你用的 try...catch 语句,在try代码块中抛出异常,那当然就直接执行catch语句块中的内容,表现就是弹出“该数据不存在!”对话框。
原因应该是连接数据库失败,查看数据连接字符串或数据库是否运行。
第2个回答  2013-02-28
很明显。sc.Open();执行失败,
应该是SQL的sa用户没有设置启用导致的,或者是密码不正确导致的。
在SQL数据库里面设置一下就好了。本回答被网友采纳
第3个回答  2013-02-28
sc.Open(); //在这个地方就打开失败了,产生了异常,就跑到catch中去了,而不会继续执行下面的所有代码。当然不会提示成功。
MessageBox.Show("数据库连接成功!");
第4个回答  2013-02-27
把异常捕获一下,具体看看是什么异常。可以将其中的代码这样改:
catch(Exception ex)
{
MessageBox.Show("该数据不存在!\r\n" + ex.Message); }追问

已经知道了,是数据库sa登陆失败,但是我数据是试用windows默认密码,电脑本身没有设定密码的,你知道大概错在那儿吗?

追答

好就是连接数据库不成功嘛,代码写的没有问题!你先搞明白怎么登录数据库,最好是设置一个独立的登录用户和密码,不要与windows相同。

本回答被提问者采纳
相似回答