Bahar_HS
پنج شنبه 16 آبان 1387, 23:23 عصر
با سلام
معادل این قطعه کد در سی شارپ چی میشه،
خواستم از نرم افزارهای تبدیل استفاده کنم که نشد ،ممکنه یکی از دوستان لطف کنند ،منوراهنمایی کنند.
باسپاس
در قسمت جنرال برنامه در بالای ماژول دستورات زیر را imports میکنیم
Imports System.IO
Imports System.Reflection
Imports System.Data.SqlClient
Public Class Installer1
2-یک کانکشن از نوع اسکیول تعریف کرده
Dim masterConnection As New System.Data.SqlClient.SqlConnection
Public Sub New()
MyBase.New()
چنانچه قصد نصب بر روی لوکال یا نسخه ای از اسکیول سرور مانند 2000 دارید از یکی از رشته اتصالهای زیر استفاده کنید
masterConnection.ConnectionString = "Data Source=(local);Initial Catalog=master;Integrated Security=True"
یا
masterConnection.ConnectionString = "packet size=4096;integrated security=SSPI;" & "data source=""(local)"";persist security info=False;" & "initial catalog=master"
اگر میخواهید بر روی نسخه اکسپرس2005 اسکیول سرور نصب کنید میتونید از رشته اتصالهای زیر استفاده کنید
masterConnection.ConnectionString = "Data Source=.\sqlexpress;Initial
Catalog=master;Integrated Security=True"
masterConnection.ConnectionString = "Data Source=(local)\sqlexpress;Initial Catalog=master;Integrated Security=True"
InitializeComponent()
End Sub
کدهای زیر را پس از ساب روتین New اضافه کنید
Private Function GetSql(ByVal Name As String) As String
Try
Dim Asm As [Assembly] = [Assembly].GetExecutingAssembly()
Dim strm As Stream = Asm.GetManifestResourceStream( _
Asm.GetName().Name + "." + Name)
Dim reader As StreamReader = New StreamReader(strm)
Return reader.ReadToEnd()
Catch ex As Exception
MsgBox("In GetSQL: " & ex.Message)
Throw ex
End Try
End Function
Private Sub ExecuteSql(ByVal DatabaseName As String, ByVal Sql As String)
رشته اتصال را میتوان در این قسمت هم مقدار دهی کرد
'masterConnection.ConnectionString = "Data Source=(local);Initial 'Catalog=master;Integrated Security=True"
Dim Command As New SqlClient.SqlCommand(Sql, masterConnection)
Command.Connection.Open()
Command.Connection.ChangeDatabase(DatabaseName)
Try
Command.ExecuteNonQuery()
Finally
Command.Connection.Close()
End Try
End Sub
Protected Sub AddDBTable(ByVal strDBName As String)
Try
جهت ساختن دیتابیس
ExecuteSql("master", "CREATE DATABASE " + strDBName)
جهت ساختن جدول
ExecuteSql(strDBName, GetSql("sql.txt"))
Catch ex As Exception
MsgBox("In exception handler: " & ex.Message)
Throw ex
End Try
End Sub
Public Overrides Sub Install(ByVal stateSaver As _
System.Collections.IDictionary)
MyBase.Install(stateSaver)
AddDBTable(Me.Context.Parameters.Item("dbname"))
End
معادل این قطعه کد در سی شارپ چی میشه،
خواستم از نرم افزارهای تبدیل استفاده کنم که نشد ،ممکنه یکی از دوستان لطف کنند ،منوراهنمایی کنند.
باسپاس
در قسمت جنرال برنامه در بالای ماژول دستورات زیر را imports میکنیم
Imports System.IO
Imports System.Reflection
Imports System.Data.SqlClient
Public Class Installer1
2-یک کانکشن از نوع اسکیول تعریف کرده
Dim masterConnection As New System.Data.SqlClient.SqlConnection
Public Sub New()
MyBase.New()
چنانچه قصد نصب بر روی لوکال یا نسخه ای از اسکیول سرور مانند 2000 دارید از یکی از رشته اتصالهای زیر استفاده کنید
masterConnection.ConnectionString = "Data Source=(local);Initial Catalog=master;Integrated Security=True"
یا
masterConnection.ConnectionString = "packet size=4096;integrated security=SSPI;" & "data source=""(local)"";persist security info=False;" & "initial catalog=master"
اگر میخواهید بر روی نسخه اکسپرس2005 اسکیول سرور نصب کنید میتونید از رشته اتصالهای زیر استفاده کنید
masterConnection.ConnectionString = "Data Source=.\sqlexpress;Initial
Catalog=master;Integrated Security=True"
masterConnection.ConnectionString = "Data Source=(local)\sqlexpress;Initial Catalog=master;Integrated Security=True"
InitializeComponent()
End Sub
کدهای زیر را پس از ساب روتین New اضافه کنید
Private Function GetSql(ByVal Name As String) As String
Try
Dim Asm As [Assembly] = [Assembly].GetExecutingAssembly()
Dim strm As Stream = Asm.GetManifestResourceStream( _
Asm.GetName().Name + "." + Name)
Dim reader As StreamReader = New StreamReader(strm)
Return reader.ReadToEnd()
Catch ex As Exception
MsgBox("In GetSQL: " & ex.Message)
Throw ex
End Try
End Function
Private Sub ExecuteSql(ByVal DatabaseName As String, ByVal Sql As String)
رشته اتصال را میتوان در این قسمت هم مقدار دهی کرد
'masterConnection.ConnectionString = "Data Source=(local);Initial 'Catalog=master;Integrated Security=True"
Dim Command As New SqlClient.SqlCommand(Sql, masterConnection)
Command.Connection.Open()
Command.Connection.ChangeDatabase(DatabaseName)
Try
Command.ExecuteNonQuery()
Finally
Command.Connection.Close()
End Try
End Sub
Protected Sub AddDBTable(ByVal strDBName As String)
Try
جهت ساختن دیتابیس
ExecuteSql("master", "CREATE DATABASE " + strDBName)
جهت ساختن جدول
ExecuteSql(strDBName, GetSql("sql.txt"))
Catch ex As Exception
MsgBox("In exception handler: " & ex.Message)
Throw ex
End Try
End Sub
Public Overrides Sub Install(ByVal stateSaver As _
System.Collections.IDictionary)
MyBase.Install(stateSaver)
AddDBTable(Me.Context.Parameters.Item("dbname"))
End