Public Conn As New ADODB.Connection
Public ConnStr As StringFunction Open_DB(dtsc, pwd)
ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _
          & dtsc & ";Jet OLEDB:Database Password=" & pwd
Conn.Open ConnStr
End FunctionFunction Close_DB()
Conn.Close
Set Conn = Nothing
End Function

解决方案 »

  1.   

    为能以 VBScript 的思想来写 C#
    你可以看看 MSDN 中 ADO.NET 的介绍,有相应的例子.
      

  2.   

    using System;
    using System.Data;
    using System.Data.SqlClient;string connstr= @"DataSource =(local);Intergrated Security =SSPI;"+
                     "user= ;pwd = ";
    SqlConnection this.Connection = new SqlConnection(connstr);
    this.Connection.Open();
    //
    //
    //
    //
    //
    this.Connection.Close();我不记得OLEDB的语法了  改一下就OK了
      

  3.   

    我主要是不知道这两个方法该怎么写,又该怎么用。
    我是打算在C#里打开数据库的时候就调用Open_DB方法,
    关闭的时候就调用Close_DB,
    可Conn是在VB里是全局的,而在C#中是一个实例,没有全局的概念,
    就不知道该怎么办了。我写成这样,我知道是肯定错的,但我想知道该怎么改??谢谢public class db
    {
        static public void db_open()
        {
    def.sqlstring = "Initial Catalog=pubs;Data Source=localhost;uid=sa";
    SqlConnection Conn = new SqlConnection(def.sqlstring);
             Conn.Open();

        }
        static public void db_close()
        {
    Conn.Close();

         }
    }
      

  4.   

    用静态方法是可以的,你可以返回一个conn不就行了
      

  5.   

    有必要这样吗?Conn.Open();和Conn.Close();怎么能分开用?try
    {   
        Conn.Open();
        ........
    }
    catch
    {
    }
    finally
    {
        Conn.Close();
    }只要测试连上后,把这里的连接字符串给以后的SqlDataAdapter即可。
    .net会自动控制数据库的连接与断开,不必担心这个。
      

  6.   

    可难道我每次使用SqlConnection都要把它实例化一下?
    每次都要SqlConnection Conn = new SqlConnection(def.sqlstring);???
    这样是不太麻烦了啊,可不可以只实例化一次,然后在其他窗体中就都可以使用这个Conn的方法和属性了?
      

  7.   

    我的Conn.Open()和Conn.Close()只是随便举的例子,意思就是想在其他窗体中使用已实例化的Conn,
    不知道我表达清楚没有,有解决方法吗?
      

  8.   

    你先连接的时候取得得到的连接字符串,然后写入注册表。
    #region 字符串写入注册表
    private void WriteCnstringToRegedit()
    {
    string s=ConnectServer();
    RegistryKey regKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Freightcn", false);
    if(regKey==null)
    {
    RegistryKey regKey1 = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Freightcn");
    regKey1.SetValue("dbName",s);
    }
    }
    #endregion写入后用这个类,取得连接字符串,我是写如注册表的,技术落后了一点啊!using System;
    using Microsoft.Win32;namespace Freight
    {
    /// <summary>
    /// GetConnectStr 的摘要说明。
    /// </summary>
    public class GetConnectStr
    {
    public GetConnectStr()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    } public string ConnectStr
    {
    get
    {
    RegistryKey regKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Freightcn", false);
    if(regKey.GetValue("dbName").ToString().Trim()!="")
    {
    return regKey.GetValue("dbName").ToString().Trim();
    }
    else
    {
    return "";
    }
    }
    }
    }
    }
    然后调用
    #region 设置连接字符串
    this.sqlConnection1.ConnectionString=null;
    GetConnectStr cs=new GetConnectStr();
    this.sqlConnection1.ConnectionString=cs.ConnectStr;
    #endregion不知道这样能不能帮你!
      

  9.   

    这样可以实现动态连接不同的主机,不过还是要每次使用的时候用类取得。.net没有全局变量的概念,除非你在窗体间传递这个连接字符串,不然就要取得。
    你讲的我也想知道,不过还没有找到解决方法!