我想用c#读取SQL数据库的内容,现在第一步就出错,连接不上数据库(本地的数据库),请各位帮忙指点一下:aa是我自己建立的一个数据库名称,Table_1是表名。
using System.Data.SqlClient;
主要代码如下:
private void Form1_Load(object sender, EventArgs e)
  {
    SqlConnection conn = new SqlConnection("Data Source=我的计算机名;Initial Catalog=aa;
    User ID=;Password=; ");
    conn.Open();
    SqlDataAdapter sada = new SqlDataAdapter("select * from Table_1", conn);
    DataTable dt = new DataTable();
    sada.Fill(dt);
    dataGrid1.DataSource = dt;
}
单步调试到conn.Open();就异常了,是不是SqlConnection连接的有问题啊?谢谢大家帮忙

解决方案 »

  1.   

    "Data Source=我的计算机名;Initial Catalog=aa;
      User ID=;Password=; "应该是这里面写的问题
      

  2.   

    连接字符串有没有写错?
    数据库设置的安全验证方式是windows集成还是密码验证还是两者兼容?
    user id可以为空吗?
      

  3.   

    SqlConnection conn = new SqlConnection("Data Source=我的计算机名;Initial Catalog=aa;
      User ID=;Password=; ");
      好好检查一下数据库的链接字符串!
      

  4.   

    数据库连接字符串错了,
    Data Source=.;Initial Catalog=aa;
      User ID=sa;Password=; 其中登录名和密码按照实际的配置,登录名不会没有。
      

  5.   

    Data Source=.;Initial Catalog=aa;Integrated Security=True
      

  6.   

    User ID=sa;//用户名
    Password=; //用户密码最好使用SQL数据库的SA用户,而且把数据库改成混合验证方式,并启用SA用户
      

  7.   

    看一下用的什么模式登陆的,sa 还是 windows 认证 模式,要是 sa 的话:User ID=sa;//用户名
    Password=; //用户密码 (这样设置)
      

  8.   

    ("Data Source=我的计算机名;Initial Catalog=aa;
      User ID=;Password=; ");
    这个是不 是有问题,用sql自已生成的连接连接吧
      

  9.   

    Data Source=.;Initial Catalog=aa;Integrated Security=True
      

  10.   

    还有个问题就是用到SqlDataAdapter时,你不用conn.Open();,因为SqlDataAdapter会在必要时为你打开和关闭连接。连接字符串问题解决后,你可以测试一下,如类似:SqlDataAdapter sada = new SqlDataAdapter("select * from Table_1", "Data Source=我的计算机名;Initial Catalog=aa;User ID=;Password=;");
    DataTable dt = new DataTable();
    sada.Fill(dt);
    dataGrid1.DataSource = dt;
      

  11.   

    谢谢各位的热情帮忙,我把机器名换成IP了;数据库开放远程连接了也改成混合验证方式了,启用SA用户了,
    “User ID=sa;Password=; ”没有设过密码,所以空下了。
    还是连接不上
      

  12.   

     用这个 
    Data Source=.;Initial Catalog=aa;Integrated Security=True;或者是这么写
    Data Source=.;Initial Catalog=aa;User ID=sa;Password=;  
    password 可以没有,UserID是必须得吧 
      

  13.   

    我的意思是可以没有密码,但是Password=;   还是得有的
      

  14.   

     查看你数据库服务器名称和计算机名称是否相同或者换个写法试试
    SqlConnection conn = new SqlConnection("Data Source=我的计算机名;Initial Catalog=aa;
      User ID=;Password=; ");
    --->
    SqlConnection conn = new SqlConnection("Data Source=你的数据库服务器名称;Initial Catalog=aa;Integrated Security=SSPI")
      

  15.   

    server=.;database=DB;uid=sa;pwd=12345678;
      

  16.   

    namhyuk好,我试了你说的,可运行到sada.Fill(dt);就不对了,跟原来的情况一样啊
      

  17.   

    data source=.;database=webcode;user id=sa;password=welcome;
    好好检查你的连接字符串
    把data source=‘’ 改成你的ip试下
      

  18.   

    IP试过,计算机名和数据库服务器名称是一样的也试过。
    captian2011你说的连接成功是指vs界面的工具中可以连接到数据库也可以连接到服务器吗?都可以,但是还是不能,另外你说的手写是什么意思呢?
      

  19.   

    private void Form1_Load(object sender, EventArgs e)
      {
      SqlConnection conn = new SqlConnection("Data Source=我的计算机名;Initial Catalog=aa;
      }你把连接字符串写在加载上面试试
    server=;database=db;uid=;pass=;你还可以试在vs里边工具->连接数据库->选择你的服务器->测试下连接->最后可以在高级里面找到连接字符串
      

  20.   

     SqlConnection conn = new SqlConnection("Data Source=电脑IP;Initial Catalog=数据库名称;User Id=用户名;Password=密码; ");
      conn.Open();
      SqlDataAdapter sada = new SqlDataAdapter("select * from Z_TempScanOut", conn);
      DataTable dt = new DataTable();
      sada.Fill(dt);
      dataGridView1.DataSource = dt;
      

  21.   

    LZ教你一个很方便的办法在你添加连接数据库的时候 右键属性-->连接字符串  然后copy里面的就OK了
      

  22.   

     sada.Fill(dt,"lsb");
     dataGrid1.DataSource = dt.Tables["lsb"];
    把后面的改成这样 。
      

  23.   

    Data Source=.;Initial Catalog=aa;Integrated Security=True
    windows验证
    如果sa
    请把用户密码加上下面fill方法,把数据添加到DAtaset中,把table做为一个表传进去谷歌 
      

  24.   

    谢谢大家的热情解答,今天终于发现问题所在:我创建的是wince设备应用程序,很抱歉忘了说明这一点了,如果在windows应用程序里面很顺利就连接上了。可是我需要在wince设备应用程序中实现连接sql数据库的功能,请问该怎么实现呢?再次感谢大家
      

  25.   

     SqlConnection conn = new SqlConnection("Data Source=我的计算机名;Initial Catalog=aa;
      User ID=;Password=; ");
    不是这么连接吧
      

  26.   

    可能是你的数据库连接字符串写错了。使用SQL验证 数据库连接字符串:Data Source = 服务器;Initial Catalog = 数据库名字;User ID = 用户名;Pwd = 密码;使用Windows验证            :Data Source = 服务器;Initial Catalog = 数据库名字;Integrated Security = true;
      

  27.   

    谢谢大家热情帮助,后面的请看29楼,如果改用“windows应用程序”则数据库连接的字符串没问题了,现在关键问题是需要在“wince设备应用程序”中连接数据库
      

  28.   

    看下你的数据库是不是SQLEXPRESS 如果是的话,把
    Data Source = 服务器 改成 Data Source =.//SQLEXPRESS
      

  29.   


    既然没有用户名和密码的话,UserId和password就不能以“”出现哦
    LZ,写这种字符串,我建议,你在vs中,有个“服务器资源管理器”打开,添加连接成功,右击属性,就能看到连接字符串了,这样复制过来就能用,还不会出错。多省事
      

  30.   

    谢谢大家解答,虽然我后面写了在“wince设备应用程序”中,但是大家似乎都没看到,不管怎么说还是谢谢大家,我就根据我用到的结贴了。
      

  31.   


    private void Form1_Load(object sender, EventArgs e)
    {
      SqlConnection conn = new SqlConnection(@"server=.;database=aa;uid=sa;pwd=;");
      conn.Open();
      SqlDataAdapter sada = new SqlDataAdapter("select * from Table_1", conn);
      DataTable dt = new DataTable();
      sada.Fill(dt);
      dataGrid1.DataSource = dt;
    }试试改成这种连接,server:计算机名或者IP地址,database:数据库名称,uid:登录数据库的账号,pwd:是登录数据库的密码。