passing text box value to SqlConnection
سلام من کانکشن استرینگ رو در یک تکست باکس نوشتم و SqlConnection رو در فرم لود از تکست باکس فراخوانی میکنم ولی موفق نبودم ممنون میشم دوستان بفرمایید را صحیح اینکار چیه سپاسگزارم.
"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\DB_ِDesign.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"
Dim con As New SqlConnection(TextBox1.Text.ToString)
Dim cmd As New SqlCommand
Dim da As New SqlDataAdapter
Dim ds As New DataSet
con.Open()
نقل قول: passing text box value to SqlConnection
سلام
چه خطایی رخ میده؟ اگر تکست باکس شما از قبل مقدار داشته باشه ، منطقا نباید خطا بده
1 ضمیمه
نقل قول: passing text box value to SqlConnection
سپاسگزارم از شما بله تکست باکس دارای مقدار هست و اگر خود کانکشن استرینگ رو در خط اول درج کنم بدون اشکال کار میکنه در پست اول تکست باکس1 بود در این پست تکست باکس 6 لطفا این تغییر را خطا فرض نکنید متن تکست باکس هم دقیقا کانکشن پست اوله که از تکست باکس کپی کردم
نقل قول: passing text box value to SqlConnection
نقل قول:
نوشته شده توسط
پرستو پارسایی
سپاسگزارم از شما تکست باکس دارای مقدار هست
دو طرف connection string تون کاراکتر " داره؟
double quotation های دو طرف رشته رو صرفا در کد می نویسید تا ابتدا و انتهای رشته مشخص بشه، نه در TextBox.Text
در داخل TextBox در دو طرف connection string نباید کاراکتر " باشه. بجای "...=Data Source" باید ...=Data Source باشه.
در ضمن ()Text.ToString نکنید، Text خودش String ئه، تبدیل ()ToString لازم نداره.
نقل قول: passing text box value to SqlConnection
نقل قول:
نوشته شده توسط
the king
دو طرف connection string تون کاراکتر " داره؟
double quotation های دو طرف رشته رو صرفا در کد می نویسید تا ابتدا و انتهای رشته مشخص بشه، نه در TextBox.Text
در داخل TextBox در دو طرف connection string نباید کاراکتر " باشه. بجای "...=Data Source" باید ...=Data Source باشه.
در ضمن ()Text.ToString نکنید، Text خودش String ئه، تبدیل ()ToString لازم نداره.
سپاسگزارم پاسخ شما هم راه حل بود هم آموزش . مشکلم حل شد سپاس
نقل قول: passing text box value to SqlConnection
در حال حاضر من کانکشن و دستورات اسکیو ال را برای فراخوانی عکس از دیتابیس ، از این کلاس استفاده میکنم
Imports System.Data.SqlClient
Public Class DataAccess
Private ConStr As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\DB_ِDesign.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"
Private SqlCon As New SqlConnection
Public SqlCmd As New SqlCommand
Public SqlDR As SqlDataReader
Public Sub ConOpen()
Try
SqlCon.ConnectionString = ConStr
SqlCon.Open()
Catch ex As Exception
'خطا در اتصال به بانک اطلاعاتی
End Try
End Sub
Public Sub ConClose()
SqlCon.Close()
End Sub
Public Function ExecNonQuery(ByVal Query As String) As Integer
SqlCmd.Connection = SqlCon
SqlCmd.CommandText = Query
ExecNonQuery = SqlCmd.ExecuteNonQuery
End Function
Public Sub ExecReader(ByVal Query As String)
SqlCmd.Connection = SqlCon
SqlCmd.CommandText = Query
SqlDR = SqlCmd.ExecuteReader
End Sub
و برای فراخوانی عکس از دیتا بیس به این شکل :
Dim DB As New DataAccess
Dim Table As New DataTable
DB.ConOpen()
DB.SqlCmd.Parameters.AddWithValue("@Code", Code)
DB.ExecReader("SELECT Master FROM Pic WHERE Code = @Code")
Table.Load(DB.SqlDR)
If Table.Rows.Count > 0 Then
Dim BytBlobData() As Byte = Table.Rows(0).Item(0)
Dim BlobData As New MemoryStream(BytBlobData)
PicCtrl.Image = Image.FromStream(BlobData)
DB.ConClose()
و بدون مشکل کار میکنه. الان میخوام کانکشن استرینگ موجود در کلاس رو از یک تکست باکس لود کنم با کد زیر ولی موفق نبودم لطفا راهنمایی بفرمایید
Private ConStr As String = frmMain.،Textbox1.Text
نقل قول: passing text box value to SqlConnection
نقل قول:
نوشته شده توسط
پرستو پارسایی
در حال حاضر من کانکشن و دستورات اسکیو ال را برای فراخوانی عکس از دیتابیس ، از این کلاس استفاده میکنم
Imports System.Data.SqlClient
Public Class DataAccess
Private ConStr As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\DB_ِDesign.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"
Private SqlCon As New SqlConnection
Public SqlCmd As New SqlCommand
Public SqlDR As SqlDataReader
Public Sub ConOpen()
Try
SqlCon.ConnectionString = ConStr
SqlCon.Open()
Catch ex As Exception
'خطا در اتصال به بانک اطلاعاتی
End Try
End Sub
Public Sub ConClose()
SqlCon.Close()
End Sub
Public Function ExecNonQuery(ByVal Query As String) As Integer
SqlCmd.Connection = SqlCon
SqlCmd.CommandText = Query
ExecNonQuery = SqlCmd.ExecuteNonQuery
End Function
Public Sub ExecReader(ByVal Query As String)
SqlCmd.Connection = SqlCon
SqlCmd.CommandText = Query
SqlDR = SqlCmd.ExecuteReader
End Sub
و برای فراخوانی عکس از دیتا بیس به این شکل :
Dim DB As New DataAccess
Dim Table As New DataTable
DB.ConOpen()
DB.SqlCmd.Parameters.AddWithValue("@Code", Code)
DB.ExecReader("SELECT Master FROM Pic WHERE Code = @Code")
Table.Load(DB.SqlDR)
If Table.Rows.Count > 0 Then
Dim BytBlobData() As Byte = Table.Rows(0).Item(0)
Dim BlobData As New MemoryStream(BytBlobData)
PicCtrl.Image = Image.FromStream(BlobData)
DB.ConClose()
و بدون مشکل کار میکنه. الان میخوام کانکشن استرینگ موجود در کلاس رو از یک تکست باکس لود کنم با کد زیر ولی موفق نبودم لطفا راهنمایی بفرمایید
Private ConStr As String = frmMain.،Textbox1.Text
Private ConStr As String در زمانی مقدار میگیره که شیء از کلاس DataAccess ایجاد میشه، پس یا باید همون موقع که شیء DataAccess رو میسازید به ConStr مقدار TextBox1.Text رو برسونید یا ConStr تون رو Public کنید تا بعدا از بیرون کلاس DataAccess بشه بهش مقدار داد. وگرنه ConStr شما نمیتونه موقع ایجادش از TextBox1.Text ای مقدار بگیره که هنوز frmMain اش ایجاد نشده. frmMain شیء ای است که DataAccess موقع ایجاد بهش دسترسی نداره.
در روش اول ما یک متد سازنده برای DataAccess تعریف می کنیم که بتونه به ConStr مقدار برسونه (با Sub New)
Public Class DataAccess
Private ConStr As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\DB_ِDesign.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"
Private SqlCon As New SqlConnection
Public SqlCmd As New SqlCommand
Public SqlDR As SqlDataReader
Public Sub New(ByVal ConnectionString As String)
ConStr = ConnectionString
End Sub
و موقع ایجاد DataAccess بهش مقدار Textbox1.Text یا هر رشته دیگری را می رسونیم :
Dim DB As New DataAccess(TextBox1.Text)
Dim Table As New DataTable
در روش دوم ما ConStr را Public می کنیم تا بشه از بیرون کلاس بهش مقدار داد :
Public Class DataAccess
Public ConStr As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\DB_ِDesign.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"
Private SqlCon As New SqlConnection
Public SqlCmd As New SqlCommand
Public SqlDR As SqlDataReader
و بعد از ایجاد شیء از DataAccess به ConStr مقدار TextBox1.Text یا هر رشته دیگری را می دهیم :
Dim DB As New DataAccess
DB.ConStr = TextBox1.Text
Dim Table As New DataTable
نقل قول: passing text box value to SqlConnection
سپاسگزارم از شما من از این مطلب آموزشی شما رو در هر دو روش استفاده کردم و عالی بود ولی من سوالم کمی نقص داشت که تصحیح میکنم . من در ابتدا کانکسن استرینگم رو ذر یک پروژه دیگه اینکریپت کردم و در یک تکست باکس در پروژه فعلی ADD کردم . بعد مقدار تکست باکس رو در فرم لود پروژه فعلیdecode میکنم و به کاکشن استرینگم بر میگردونم . حال میخوام در DataAccess که استفاده میکنم ConStr رو مقدار دهی کنم از تکست باکسم که دارای مقدار کانکسن استرینگ هست. ببخشید اگر طولانی شد
نقل قول: passing text box value to SqlConnection
نقل قول:
نوشته شده توسط
پرستو پارسایی
سپاسگزارم از شما من از این مطلب آموزشی شما رو در هر دو روش استفاده کردم و عالی بود ولی من سوالم کمی نقص داشت که تصحیح میکنم . من در ابتدا کانکسن استرینگم رو ذر یک پروژه دیگه اینکریپت کردم و در یک تکست باکس در پروژه فعلی ADD کردم . بعد مقدار تکست باکس رو در فرم لود پروژه فعلیdecode میکنم و به کاکشن استرینگم بر میگردونم . حال میخوام در DataAccess که استفاده میکنم ConStr رو مقدار دهی کنم از تکست باکسم که دارای مقدار کانکسن استرینگ هست. ببخشید اگر طولانی شد
فرقی نمی کنه، مقدار Connection String شما در یک چیزی هست، چه رمزی و چه غیر رمزی، چه TextBox و چه متغیر و چه فایل و ... به هر حال مقدارش در جایی هست، اون مقدار رو یا در DB As New DataAccess قرار بدهید یا بعد از ساخته شدن DB در DB.ConStr قرار بدهید. برای پیدا کردن راه حل هم اول کار فرض کنید که اصلا DataAccess و ConStr ای در کار نیست، یعنی صورت مساله شما الان ConStr نیست، مساله تون خوندن و نمایش مقدار Connection String در اون بخش از کد ئه. تصور کنید که فقط می خواهید اون مقدار Connection String رو در اون بخش از کد با MsgBox یا MessageBox.Show نمایش بدهید، نه بیشتر. وقتی اینکار رو انجام دادید و موفق شدید، اونوقت به سادگی بجای اینکه نمایش اش بدهید می توانید ConStr رو پر کنید.
نقل قول: passing text box value to SqlConnection
نقل قول:
نوشته شده توسط
the king
فرقی نمی کنه، مقدار Connection String شما در یک چیزی هست، چه رمزی و چه غیر رمزی، چه TextBox و چه متغیر و چه فایل و ... به هر حال مقدارش در جایی هست، اون مقدار رو یا در DB As New DataAccess قرار بدهید یا بعد از ساخته شدن DB در DB.ConStr قرار بدهید. برای پیدا کردن راه حل هم اول کار فرض کنید که اصلا DataAccess و ConStr ای در کار نیست، یعنی صورت مساله شما الان ConStr نیست، مساله تون خوندن و نمایش مقدار Connection String در اون بخش از کد ئه. تصور کنید که فقط می خواهید اون مقدار Connection String رو در اون بخش از کد با MsgBox یا MessageBox.Show نمایش بدهید، نه بیشتر. وقتی اینکار رو انجام دادید و موفق شدید، اونوقت به سادگی بجای اینکه نمایش اش بدهید می توانید ConStr رو پر کنید.
سپاسگزارم به جواب مورد نیازم با راهنمایی های شما رسیدم (پاسخ هم آموزش بود هم راهنمایی) مجددا تشکر میکنم