 |
|
ต้องการนำจำนวน row คือว่าถ้าผมต้องการนับจำนวน row ที่เรา select ออกมาอะครับ |
|
 |
|
|
 |
 |
|
ได้อย่างก็ต้องเสียอย่าง เลือกเดินบนทางสักทาง ได้ไหม
Code (VB.NET)
'ExecuteScalar
sqlCount = "select count(*)from Tools"
'ExecutQuery
sqlminimum = " Select Tools.Tool_id,Tools.Tool_cost,Tools.Tool_sum,Tools.Lot_id,Tools.Type_id "
sqlminimum &= " from Tools INNER JOIN Type_Tools "
sqlminimum &= " on Tools.Type_id = Type_Tools.Type_id "
sqlminimum &= " where (Tools.Tool_sum < Type_Tools.Minimum) and (Type_Tools.Type_id='" & cmbtype.SelectedValue & "')"
ถ้าอยากเก็บเธอไว้ทั้งสองคน ก็แบบนี้ แต่ผมไม่ชัวร์
Code (VB.NET)
sqlminimum = " Select Count(*),
Tools.Tool_id,Tools.Tool_cost,Tools.Tool_sum,Tools.Lot_id,Tools.Type_id "
sqlminimum &= " from Tools INNER JOIN Type_Tools "
sqlminimum &= " on Tools.Type_id = Type_Tools.Type_id "
sqlminimum &= " where (Tools.Tool_sum < Type_Tools.Minimum) and (Type_Tools.Type_id='" & cmbtype.SelectedValue & "')"
แนะนำให้ เก็บลง DataTable ก่อนแล้วนับ Rows เอาก็ได้
Code (VB.NET)
Dt.Rows.Count
|
 |
 |
 |
 |
Date :
2010-01-02 12:51:13 |
By :
tungman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
พอดีผมใช้วิธีนับ row ใน Dataset ไปอะครับ แต่ว่ามันก็ยังฟ้องขึ้นมาอะครับ ไม่เข้าใจว่าฟ้องว่าอะไรอะ
Code (VB.NET)
Dim sqlminimum As String = ""
Dim iCount2 As Integer = 0
sqlminimum = " Select Tools.Tool_id,Tools.Tool_cost,Tools.Tool_sum,Tools.Lot_id,Tools.Type_id "
sqlminimum &= " from Tools INNER JOIN Type_Tools "
sqlminimum &= " on Tools.Type_id = Type_Tools.Type_id "
sqlminimum &= " where (Tools.Tool_sum < Type_Tools.Minimum) and (Type_Tools.Type_id='" & cmbtype.SelectedValue & "')"
With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
End With
comm = New SqlCommand
With comm
.CommandType = CommandType.Text
.CommandText = sqlminimum
.Connection = Conn
.ExecuteNonQuery()
End With
da = New SqlDataAdapter(sqlminimum, Conn)
da.Fill(ds, "Minimum")
iCount2 = ds.Tables("Mimimum").Rows.Count ' Error ที่บรรทัดนี้ครับ
มัน Error ว่า Object reference not set to an instance of an object.
ถ้าใช้เป็น DataTable จะต้องพิมพ์ยังไงหรอครับ พอดีผมใช้แต่ DataSet พอจะมาใช้ DataTable แล้วใช้ไม่เป็น
|
 |
 |
 |
 |
Date :
2010-01-02 13:22:34 |
By :
Nameless |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (VB.NET)
With comm
.CommandType = CommandType.Text
.CommandText = sqlminimum
.Connection = Conn
.ExecuteNonQuery() '<---- ผู้ร้ายตัวจริง
End With
|
 |
 |
 |
 |
Date :
2010-01-02 13:32:38 |
By :
tungman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมได้รองหลายๆแบบแล้วแต่ว่าก็ยังไม่ได้อะครับ
Code (VB.NET)
sqlminimum = " Select Count(*) ,Tools.Tool_id,Tools.Tool_cost,Tools.Tool_sum,Tools.Lot_id,Tools.Type_id "
sqlminimum &= " from Tools INNER JOIN Type_Tools "
sqlminimum &= " on Tools.Type_id = Type_Tools.Type_id "
sqlminimum &= " where (Tools.Tool_sum < Type_Tools.Minimum) and (Type_Tools.Type_id='" & cmbtype.SelectedValue & "')"
With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
End With
comm = New SqlCommand
With comm
.CommandType = CommandType.Text
.CommandText = sqlminimum
.Connection = Conn
iCount2 = .ExecuteScalar() 'Error
End With
Column 'Tools.Tool_id' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.
Column 'Tools.Tool_cost' is invalid in the select list because it is not
Code (VB.NET)
sqlminimum = " Select Tools.Tool_id,Tools.Tool_cost,Tools.Tool_sum,Tools.Lot_id,Tools.Type_id "
sqlminimum &= " from Tools INNER JOIN Type_Tools "
sqlminimum &= " on Tools.Type_id = Type_Tools.Type_id "
sqlminimum &= " where (Tools.Tool_sum < Type_Tools.Minimum) and (Type_Tools.Type_id='" & cmbtype.SelectedValue & "')"
With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
End With
comm = New SqlCommand
With comm
.CommandType = CommandType.Text
.CommandText = sqlminimum
.Connection = Conn
.ExecuteScalar()
End With
da = New SqlDataAdapter(sqlminimum, Conn)
da.Fill(ds, "Minimum")
iCount2 = ds.Tables("Mimimum").Rows.Count 'Error
รองเปลี่ยนตัวร้ายแล้วแต่ก็ยังฟ้องเหมือนเดิมอะครับ Object reference not set to an instance of an object.
|
 |
 |
 |
 |
Date :
2010-01-02 14:10:17 |
By :
Nameless |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
รู้สึกไม่ต้องใส่นะ
Code (VB.NET)
Dim sqlminimum As String
sqlminimum = "Select [Tools].[Tool_id], [Tools].[Tool_cost], [Tools].[Tool_sum], [Tools].[Lot_id], [Tools].[pType_id] "
sqlminimum &= "From [Tools] Inner Join [Type_Tools] "
sqlminimum &= "On [Tools].[Type_id] = [Type_Tools].[Type_id] "
sqlminimum &= "Where ([Tools].[Tool_sum] < [Type_Tools].[Minimum]) And ([Type_Tools].[Type_id]=@Type_id)"
'With Conn
'If .State = ConnectionState.Open Then .Close()
'.ConnectionString = strConn
'.Open()
'End With
Dim comm As SqlCommand
comm = New SqlCommand(sqlminimum, Conn)
comm.Parameters.Add("@Type_id", SqlDbType.Int)
comm.Parameters("@Type_id").Value = cmbtype.SelectedValue
'With comm
'.CommandType = CommandType.Text
'.CommandText = sqlminimum
'.Connection = Conn
'.ExecuteScalar()
'End With
Dim da As SqlDataAdapter
da = New SqlDataAdapter(comm)
da.Fill(ds, "Minimum")
Dim iCount2 As Integer
iCount2 = ds.Tables("Mimimum").Rows.Count
|
 |
 |
 |
 |
Date :
2010-01-02 16:02:50 |
By :
tungman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มัน Error ตรง
Code (VB.NET)
da.Fill(ds, "Minimum") ' Failed to convert parameter value from a String to a Int32.
ว่าแต่ ตรง comm.Parameters.Add("@Type_id", SqlDbType.Int)
SqlDbType.Int
คืออะไรหรอครับ ??
|
 |
 |
 |
 |
Date :
2010-01-02 17:34:02 |
By :
Nameless |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ทำไมชื่อผมไม่ขึ้นละเนี่ย
|
 |
 |
 |
 |
Date :
2010-01-02 18:10:09 |
By :
Nameless |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เอาใหม่ ลืมดู type
Code (VB)
Dim sqlminimum As String
sqlminimum = "Select [Tools].[Tool_id], [Tools].[Tool_cost], [Tools].[Tool_sum], [Tools].[Lot_id], [Tools].[pType_id] "
sqlminimum &= "From [Tools] Inner Join [Type_Tools] "
sqlminimum &= "On [Tools].[Type_id] = [Type_Tools].[Type_id] "
sqlminimum &= "Where ([Tools].[Tool_sum] < [Type_Tools].[Minimum]) And ([Type_Tools].[Type_id]=@Type_id)"
'With Conn
'If .State = ConnectionState.Open Then .Close()
'.ConnectionString = strConn
'.Open()
'End With
Dim comm As SqlCommand
comm = New SqlCommand(sqlminimum, Conn)
comm.Parameters.Add("@Type_id", SqlDbType.NVarChar)
comm.Parameters("@Type_id").Value = cmbtype.SelectedValue
'With comm
'.CommandType = CommandType.Text
'.CommandText = sqlminimum
'.Connection = Conn
'.ExecuteScalar()
'End With
Dim da As SqlDataAdapter
da = New SqlDataAdapter(comm)
da.Fill(ds, "Minimum")
Dim iCount2 As Integer
iCount2 = ds.Tables("Mimimum").Rows.Count
ส่วนที่ถามว่า SqlDbType คืออะไร ถ้าใช้ Visual Studio ลองเอา mouse ไปวางบน Parameters.Add อยู่แสดงจะพบคำตอบ
|
 |
 |
 |
 |
Date :
2010-01-02 18:48:57 |
By :
tungman |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ครับผม เดี๋ยวผมรองอีกที ยังไงก็ขอบคุณพี่ tungman มากครับ
|
 |
 |
 |
 |
Date :
2010-01-02 20:54:02 |
By :
Nameless |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เป็นคำสอนที่ดีมาก    
|
 |
 |
 |
 |
Date :
2010-07-12 13:51:26 |
By :
เอกลักษณ์ หมื่นเจริญ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองนี่ครับ
iCount2 = Me.BindingContext(ds, "Minimum").Count
|
 |
 |
 |
 |
Date :
2010-07-12 14:21:44 |
By :
noptalent |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|