من می خواهم در ستور select پارامتر استفاده کنم ولی جواب نمی داد ازکد زیر استفاده کردم به نظرتون مشکلش چیه
Dim da AsNew SqlDataAdapter("select subject,about from tb_create where username=@user ", con)
من می خواهم در ستور select پارامتر استفاده کنم ولی جواب نمی داد ازکد زیر استفاده کردم به نظرتون مشکلش چیه
Dim da AsNew SqlDataAdapter("select subject,about from tb_create where username=@user ", con)
این دستور ظاهرا هیچ مشکلی نداره .
مگه شما باهاش مشکل دارید؟
این دستورا را می نویسم ولی پیغام میده که @user تعریف نشده
Dim p1 AsNew SqlParameter("@user", SqlDbType.Char, 25)
p1.Value = TextBox1.Text
و بعدش دستوری را که بالانوشتم را مینویسم
سلام
1- اگر احیاناً TextBox شما خالی باشد، شاید موجب خطا شود.
در این حالت باید خالی بودن را تشخیص داده و پارامتر را با System.DbNull.Value پر کنید یا سرچ نکنید و...
2- امیدوارم پارامتر را به مجموعه پارامترهای Command اضافه کرده باشید؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ (انشا ا...)
3- همانطور که دوستان هم گفتند، لطفاً متن کامل انگیلیسی خطا را بنویسید.
(کلاً عادت خوبی است که هر که به مشکلی بر میخورد حداقل حداقل متن خطا را هم بگذارد)
منظورتون از بایند کردن چیه؟
من از یک روش دیگه استفاده کردم بعد از اینکه اون روش جواب نداد ولی این هم یه مشکل داره
این کدش:
IfNot (IsPostBack) Then
Label4.Text = Context.User.Identity.Name
Dim s AsString = Label4.Text
Dim cmd AsNew SqlCommand
cmd.Connection = con
Dim reader1 As SqlDataReader
cmd.CommandText = "Select subject,about From tb_create" & _
" Where username=" & s
con.Open()
reader1 = cmd.ExecuteReader
reader1.Read()
TextBox1.Text = RTrim(reader1.GetString(0))
TextBox2.Text = RTrim(reader1.GetString(1))
con.Close()
EndIf
اینم پیغام خطا
Invalid column name 'محتویات متغیر s'.
نوع UserName چیه؟ اگه رشته است اینجور بنویس:
cmd.CommandText = "Select subject,about From tb_create" & _
" Where username='" & s+"'"
سلام
عزیزجان از همون پارامتر استفاده کن ولی پارامتر را باید به Command اضافه کنیدریال ورگنه از کجا آن را پیدا کند
مثلاً
Dim fieldvalue As String
Dim iCount As Integer
'...
'fieldvalue = "...."
'...
Using _
dbCon As New System.Data.SqlClient.SqlConnection("CONNECTIONSTRING"), _
dbCom As New System.Data.SqlClient.SqlCommand("SELECT COUNT(*) FROM [tablename] WHERE ([fieldname]=@fieldvalue)", dbCon)
dbCom.Parameters.Add(New System.Data.SqlClient.SqlParameter("@fieldvalue", SqlDbType.NVarChar, 50, ParameterDirection.Input, False, 0, 0, Nothing, DataRowVersion.Default, fieldvalue))
'dbCom.Parameters.AddWithValue("@fieldvalue", fieldvalue)
dbCon.Open()
iCount = CInt(dbCom.ExecuteScalar)
End Using
ببینید شما در قسمت SelectCommand برای اینکه به برنامه بگید میخوایید از پارامتر استفاده کنید، باید از @ استفاده کنید. اما لازم نیست دیگه در قسمت مقدار دهی به پارامتر ازش استفاده کنید. برای همین پیغام میده که @User تعریف نشده .
دستورتون رو به این صورت اصلاح کنید:
s.Parameters.Add("User", SqlDbType.Int).Value = TextBox1.Text
----------------------------------------------------------------------------
اما روش که خودم استفاده میکنم فوق العاده آسونه . کافیه از متد String.Format استفاده کنید. مثال :
Dim da AsNew SqlDataAdapter(String.Format("select subject,about from tb_create where username={0} ",TextBox1.Text),
con)
با این متد هر تعداد پارامتر که بخواید میتویند اضافه کنید و از شر گذاشتن علامت & و نوشتن String های طولانی وپیچیده خلاص بشید .