小弟只放了一个ComboBox控件(WinForm的).
然后添加如下代码:
public Form1()
{
InitializeComponent();
//TODO: 在 InitializeComponent 调用后添加任何构造函数代码
string str="server=ROBBER;uid=sa;pwd=;database=pubs";
SqlConnection conn=new SqlConnection(str);
string sql="select * from stores";
SqlDataAdapter adapter=new SqlDataAdapter(sql,conn);
DataSet dataset=new DataSet();
adapter.Fill(dataset,"stores");
this.comboBox1.DisplayMember="stor_name";
this.comboBox1.DataSource=dataset.Tables["stores"];
}
结果运行是提示:
未处理的“System.Data.SqlClient.SqlException”类型的异常出现在 system.data.dll 中。其他信息: 系统错误。 怎么解决?

解决方案 »

  1.   

    有沒有引用
    System.Data.SqlClient
      

  2.   

    恩..有
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
    using System.Data.SqlClient;
      

  3.   

    好象少一个身份验证(window ?  sql)
      

  4.   

    連接不同數據庫的方法請參考
    private string ConnToDB(string psAppName,IDbConnection pConn) {
    string sConfigFile ;
    string sServer, sDBName, sUser, sPwd, sCnStr;
    string sError  = "";
    //sConfigFile = CUtility.GetWinDir() + "\\" + "Config.ini";
    sConfigFile = CUtility.GetWinDir() + "\\" + "Config.xml";
    if (!File.Exists(sConfigFile)) {
    sError = "ConnToDB:配置文件不存在,無法連接數據庫.";
    throw new Exception(sError);
    //return sError;
    } //m_DBType = SetDBType(CUtility.IniGetValue(psAppName, "DBTYPE", sConfigFile));
    //sServer = CUtility.IniGetValue(psAppName, "SERVERNAME", sConfigFile);
    //sDBName = CUtility.IniGetValue(psAppName, "DBNAME", sConfigFile);
    //sUser = CUtility.IniGetValue(psAppName, "USERNAME", sConfigFile);
    //sPwd = CUtility.IniGetValue(psAppName, "USERPWD", sConfigFile); m_DBType = SetDBType(CUtility.XmlGetValue(psAppName, "DBTYPE", sConfigFile));
    sServer = CUtility.XmlGetValue(psAppName, "SERVERNAME", sConfigFile);
    sDBName = CUtility.XmlGetValue(psAppName, "DBNAME", sConfigFile);
    sUser = CUtility.XmlGetValue(psAppName, "USERNAME", sConfigFile);
    sPwd = CUtility.XmlGetValue(psAppName, "USERPWD", sConfigFile); sPwd = CUtility.Decrypt(sPwd); sCnStr = "";
    switch (m_DBType.ToString()) {
    case "MSSQL":
    sCnStr = "Connect timeout=3000;Data Source=" + sServer + ";Initial Catalog=" + sDBName +
    ";User ID=" +sUser + ";Password=" + sPwd;
    break;
    case "OLEDB":
    sCnStr = "Provider=SQLOLEDB.1;Persist Security Info=False;Connect timeout=30;Data Source=" + sServer + ";Initial Catalog=" + sDBName +
    ";User ID=" + sUser + ";Password=" + sPwd;
    //sCnStr = "User ID=sa;password=sa;Data Source=10.128.38.135;Tag with column collation when possible=False;Initial Catalog=ExpatriateClub;Use Procedure for Prepare=1;Auto Translate=True;Persist Security Info=False;Provider=SQLOLEDB.1;Use Encryption for Data=False;Packet Size=4096"
    break;
    case "ORACLE":
    sCnStr = "Data Source=" + sServer + ";User ID=" + sUser + ";Password=" +sPwd;
    break;
    case "ACCESS":
    sCnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sServer +
    ";User ID=" + sUser + ";Password=" + sPwd;
    break;
    }

    this.m_ConnString = sCnStr; try {
    pConn.ConnectionString = sCnStr;
    pConn.Open();
    return "";
    }
    catch (Exception ex) {
    sError = "ConnToDB:" + ex.Message;
    throw new Exception(sError);
    //return sError;
    }
    }
      

  5.   

    string str="server=ROBBER;uid=sa;pwd=;database=pubs";
    改為:
    string str="Data Source=ROBBER;User ID=sa;Password=;Initial Catalog=pubs";
      

  6.   

    谢谢..我解决了..
    改成:
    string str="server=ROBBER;Integrated Security=SSPI;database=pubs";就连上了.谢谢啦