View Full Version : ایراد کد
nasiiiiiii
سه شنبه 15 فروردین 1391, 21:40 عصر
دوستان سلام
میشه کمکم کنید تا بفهمم دلیل ارور کد زیر چیه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟:گری ::گریه::گریه:85155
Hybrid
سه شنبه 15 فروردین 1391, 22:05 عصر
سلام ، چرا نمیشه :)
نگا شما اصلا خاصیت DataAdapter.SelectCommand رو مقدار دهی نکردین ، پس نمیشه datatable رو پر کنه و در نتیجه اررور میده
یعنی باید به شکل زیر کد هاتون رو اصلاح کنین :
1 ) اصلا pubsqlCmd اصلا به دردت نمیخوره کلا حذفش کن
کلا باید کدت چیزی به شکل زیر باشه :
DataAdapter.SelectCommand.CommandType = CommandType.Text
DataAdapter.SelectCommand.CommandText = ""
DataAdapter.SelectCommand.Connection = pubSQLCon
If DataAdapter.SelectCommand.Connection.State <> ConnectionState.Open Then
DataAdapter.SelectCommand.Connection.Open()
End If
DataAdapter.SelectCommand.ExecuteNonQuery()
Dim dt As New DataTable
DataAdapter.Fill(dt)
Return dt
pubSQLCon.Close()
کد های جلوی DataAdapter.selectCommand.commantext رو همون کد های بالات قرار بده .
اگه باز هم اشکال داشت کل کد تابع Search رو بزار تا براتون اصلاحش کنم
nasiiiiiii
چهارشنبه 16 فروردین 1391, 00:19 صبح
بازم نتونستم:گریه::گریه::گریه::گر ه::گریه::گریه::گریه::گریه::گر ه::گریه:85167
Hybrid
چهارشنبه 16 فروردین 1391, 00:29 صبح
این خط کد رو در اولین خط تابع بعد از try وارد کن :
DataAdapter.SelectCommand = New SqlCommand()
nasiiiiiii
چهارشنبه 16 فروردین 1391, 13:23 عصر
کدم درست شد اما تو دیتا گرید ویو چیزی نشون نمی ده؟؟؟؟؟؟؟؟؟؟؟؟:گیج:
Hybrid
چهارشنبه 16 فروردین 1391, 13:28 عصر
کدم درست شد اما تو دیتا گرید ویو چیزی نشون نمی ده؟؟؟؟؟؟؟؟؟؟؟؟:گیج:
سلام دوست عزیز امیدوارم حالت خوب باشه ، احتمالا از تابع به درستی استفاده نمیکنین ، میشه کدی که به وسیلش از تابع استفاده میکنین رو بزارین ، در ضمن کل کد تابع رو هم بزار تا اگه اشکالی داشت واستون درستش کنم
nasiiiiiii
چهارشنبه 16 فروردین 1391, 13:47 عصر
Function Search(ByVal FieldName1 As String, ByVal FieldName2 As String) As DataTable
Try
DataAdapter.SelectCommand =
New SqlClient.SqlCommand()
DataAdapter.SelectCommand.CommandType = CommandType.Text
DataAdapter.SelectCommand.CommandText =
"Select * from TblApartemanForosh Where '" + FieldName1 + "' between '" + Txtgheimatpae.Text + "' And '" + Txtgheimatnahai.Text + "' or '" + FieldName2 + "'between '" + TxtMetrazhPae.Text + "' And '" + TxtMetrazhAkhar.Text + "'"
DataAdapter.SelectCommand.Connection = Pubsqlcon
If DataAdapter.SelectCommand.Connection.State <> ConnectionState.Open Then
DataAdapter.SelectCommand.Connection.Open()
End If
DataAdapter.SelectCommand.ExecuteNonQuery()
Dim dt As New DataTable
DataAdapter.Fill(dt)
Return dt
Pubsqlcon.Close()
Catch ex As SqlClient.SqlException
MsgBox(
" ")
Catch ex As Exception
MsgBox(
" ")
End Try
End Function
Private Sub BtnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSearch.Click
DataGridView1.DataSource = Search(
"GheimatKol", "Metrazh")
End Sub
سلام
دوست کدا رو چه طور بذارم که بهم نریزه؟؟؟
Hybrid
چهارشنبه 16 فروردین 1391, 14:13 عصر
داخل تگ های Code به شکل # هست بزار تا بهم نریزه ،
nasiiiiiii
چهارشنبه 16 فروردین 1391, 14:44 عصر
85182نتونستم داخل تگ بزارم نمی دونم چه طوری؟
85181
Hybrid
چهارشنبه 16 فروردین 1391, 15:26 عصر
سلام ، داخل اس کیو ال دستورش به شکل زیر میشه :
SELECT [ID] as [آی دی]
,[p_name] as [نام]
,[p_fname] as [نام خانوادگی]
,[p_Hazine] as [هزینه]
,[p_Daramad] as [درامد]
FROM [New].[dbo].[Table_1] where ([p_Hazine] between 1 and 100) OR ([p_Daramad] between 9 and 12)
اون علامت های تک کوتیشن رو از دو طرف نام فیلد بردار باید کد جستجوت چیزی شبیه کد زیر باشه :
Function Search(ByVal FieldName As String, ByVal fieldName2 As String) As DataTable
Dim oledbDataAdapter1 As New OleDbDataAdapter
Dim oledbconnection1 As New OleDbConnection
oledbconnection1.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Application.StartupPath + "\Database1.accdb"
With oledbDataAdapter1
.SelectCommand = New OleDbCommand()
.SelectCommand.Connection = oledbconnection1
.SelectCommand.CommandType = CommandType.Text
.SelectCommand.CommandText = "Select * from table1 where " & FieldName & " between " & TextBox1.Text & " AND " & TextBox2.Text & _
" OR " & fieldName2 & " Between " & TextBox3.Text & " And " & TextBox4.Text
If .SelectCommand.Connection.State <> ConnectionState.Open Then
.SelectCommand.Connection.Open()
End If
Dim dt As New DataTable
oledbDataAdapter1.Fill(dt)
Return dt
End With
End Function
اگه از کد بالا استفاده میکنی کانکشن استرینگ موجود در اونو از بین ببر و کانکشن استرینگ خودت رو جایگزین کن و به روش مشابه ازش استفاده کن در ضمن باید نوع فیلدهایی که اسمشون رو به پارامتر ارسال میکنی از نوع Number یا biint بزار تا درست کار کنه
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.