从类到SqlCommand的SqlConnection

Mar*_*rek 0 c# sql sql-server sqlcommand sqlconnection

您好我在运行SqlConnection的类中有这个代码:

using System.Data.SqlClient;
using System.IO;

namespace tours
{
    class myConnection
    {
        public static SqlConnection GetConnection()
        {
                string path = "C:\\Users\\marek\\Documents\\Visual Studio 2012\\Projects\\tours\\tours\\sql_string.txt";
                StreamReader sr = new StreamReader(File.Open(path, FileMode.Open));

                string str = "Data Source='" + sr.ReadLine() + "';Initial Catalog ='" + sr.ReadLine() + "' ;User ='" + sr.ReadLine() + "';Password = '" + sr.ReadLine() + "'";

                SqlConnection spojeni = new SqlConnection(str);
                spojeni.Open();
                return spojeni;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在其他形式我得到SqlCommandSqlDataAdapter我需要添加到他们SqlConnection,但不知道我怎么能访问它们?你能告诉我什么吗?例如:

DataTable dt = new DataTable();
SqlDataAdapter SDA = new SqlDataAdapter("SELECT * FROM zajezd",);
SDA.Fill(dt);
Run Code Online (Sandbox Code Playgroud)

Dam*_*ith 5

尝试

new SqlDataAdapter("SELECT * FROM zajezd",tours.myConnection.GetConnection())
Run Code Online (Sandbox Code Playgroud)

或者你已经添加using tours;到文件的顶部,然后你可以打电话给myConnection.GetConnection()

注意:

将myConnection设为公开

public class myConnection
Run Code Online (Sandbox Code Playgroud)

如果myConnection在单独的类库中,则需要添加对数据类库的引用


我会改变连接类只返回连接字符串,如下所示

public class myConnection
{
    public static string GetConnectionString()
    {
        string connection = string.Empty;
        string path = "C:\\Users\\marek\\Documents\\Visual Studio 2012\\Projects\\tours\\tours\\sql_string.txt";
        using (StreamReader sr = new StreamReader(File.Open(path, FileMode.Open)))
        {
            connection = "Data Source='" + sr.ReadLine() + "';Initial Catalog ='" + sr.ReadLine() + "' ;User ='" + sr.ReadLine() + "';Password = '" + sr.ReadLine() + "'";

        } 

        return connection;

    }
}
Run Code Online (Sandbox Code Playgroud)

当我们需要访问数据库时,

DataTable dt = new DataTable();

using (SqlConnection con = new SqlConnection(myConnection.GetConnectionString()))
using (SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM zajezd", con))
{
    adapter.Fill(dt);
}
Run Code Online (Sandbox Code Playgroud)

如果您需要ExecuteNonQueryExecuteScalar

using (SqlConnection con = new SqlConnection(myConnection.GetConnectionString()))
using (SqlCommand commad = new SqlCommand("sql statements", con))
{
    con.Open();
    commad.ExecuteNonQuery(); 
    //var result = commad.ExecuteScalar();

}
Run Code Online (Sandbox Code Playgroud)