2015-12-10 4 views
0

Я работаю над проектом asp.net, потому что делаю операции select/delete/update/insert для этого, я создаю экземпляры SqlConnection, SqlCommand во всех этих событиях. Есть ли идея использовать общий класс для создания и использования SqlConnection и других SQL-операций.Как использовать открытое и закрытое соединение для всех событий?

SqlConnection conn2 = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["connstr"].ConnectionString); 
    SqlCommand cmd2 = new SqlCommand("insert into tJob(colName) values (value)); 
+0

Показать код у вас уже есть – tshoemake

+0

Если вы все в порядке, и вы можете использовать EF, который будет обрабатывать большинство ур проблем – brykneval

+0

Смотрите это http://stackoverflow.com/questions/27580534/common-method-to -get-data-from-database-with-custom-return-type-data-access-lay/27580652 # 27580652 – Mairaj

ответ

0

Вы можете определить SqlConnection как глобальную переменную для своей страницы, а не для метода, и прикрепить строку подключения. Точно так же, как и SqlCommand, и каждый раз просто изменяя код SqlCommand и его параметры.

private SqlConnection con = new SqlConnection("your_connection_string"); 
private SqlCommand cmd = new SqlCommand("", con); 

protected void Page_Load(object sender, EventArgs e){ 

} 

protected void MyMethod(){ 
    cmd.CommandText = "my_first_stored_procedure"; 
    cmd.CommandType = CommandType.StoredProcedure; 
    cmd.Parameters.Add("myparam", SqlDbType.Int).Value = 1; 
    //... 
    con.Open(); 
    cmd.ExecuteNonQuery(); 
    con.Close(); 
} 

protected void MyMethod2(){ 
    cmd.CommandText = "my_second_stored_procedure"; 
    cmd.CommandType = CommandType.StoredProcedure; 
    cmd.Parameters.Add("myparam", SqlDbType.Int).Value = 2; 
    //... 
    con.Open(); 
    cmd.ExecuteNonQuery(); 
    con.Close(); 
} 

и так далее ...

0

Если я вас правильно понял, вот основы.

SqlConnection conn2 = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["connstr"].ConnectionString); 

Try 
    conn2.Open() 

    '....Write your code logic here 
    SqlCommand cmd2 = new SqlCommand("insert into tJob(colName) values (value)); 

    cmd2.ExecuteNonQuery(); 

Catch ex As Exception 

Finally 
    conn2.Close() 
    conn2.Dispose() 
End Try 

EDIT Если вы ищете общие для всего веб-проекта, это должно быть место в web.config файле внутри <connectionStrings> тега.

См. Ниже образец.

<connectionStrings> 
    <add name="ConnectionStringName" connectionString="Data Source=(local);Initial Catalog=DatabaseNameHere;Integrated Security=False;User ID = UserNameHere ; Password = PasswordHere " providerName="System.Data.SqlClient"/> 
</connectionStrings> 

Для вызова в коде позади: (см код образец VB ниже), вы можете вызвать его на каждой странице за кодом.

Dim Conn As New SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings.Item("DatabaseNameHere").ConnectionString) 
+0

Это помогает только для этой веб-страницы. Я хочу использовать соединение для всего проекта. – Sam1604

+0

@ Sam1604, если вы ищете соединение для всего проекта, оно должно быть в web.config – Japongskie

+0

@ Sam1604 см. Ответ EDIT выше. – Japongskie

Смежные вопросы