SqlCommand cmd=new SqlCommand("select Count(*) from employees where LastName='King'",cnn);if(cmd.ExecuteScalar()==1)   //只有一行
{
   Console.WriteLine("只有一行");
}

解决方案 »

  1.   

    如果你的数据已经fill到了DataTable中,也可以用DataTable的Select()方法来实现!!!
      

  2.   

    可以先把数据读到dataview中
    在dataview中找某行,或者第n行很容易
      

  3.   

    这是我的一个DATATABLE中的代码:
    public class CTable
        Protected Const KEY_FIELD_SYMBOL As String = "SYMBOL"
        Protected Const KEY_FIELD_ID As String = "ID"    '*** FILL的时候已将DEFAULTVIEW.SORT设置为Symbol    Public Function Seek(ByVal ID As Integer) As Integer
            Dim dv As New DataView(Me)
            dv.Sort = Me.KEY_FIELD_ID
            Dim Index As Integer = dv.Find(ID)
            If Index >= 0 Then
                Index = Me.Seek(DirectCast(dv(Index)(Me.KEY_FIELD_SYMBOL), String))
            End If
            Return Index
        End Function    Public Function Seek(ByVal Symbol As String) As Integer
            Return Me.DefaultView.Find(Symbol)
        End Function    Public Function Seek(ByVal Filter As String, ByVal IsSymbol As Boolean) As Integer
            If IsSymbol Then
                Return Me.Seek(Filter)
            End If
            Dim dv As New DataView(Me)
            dv.Sort = Me.DefaultView.Sort
            dv.RowFilter = Filter
            If dv.Count > 0 Then
                Return Me.Seek(DirectCast(dv(0)(Me.KEY_FIELD_SYMBOL), String))
            Else
                Return -1
            End If
        End Function
    end class定位代码:
    Dim Index As Integer = Me.m_Doc.Find("[MEMO] Like 'abc*'")
    Me.grdList.Row = Index
      

  4.   

    定位代码:
    Dim Index As Integer = Me.tbl.seek("[MEMO] Like 'abc*'", false)
    Me.grdList.Row = Index
      

  5.   

    select 和 find 只能查找到是否有记录,但不能定位到该记录
      

  6.   

    多谢大家回帖 我再试试SEEK 
    补充一点,该表因为操作过程中会增加和删除记录,所以自动增加列是不连续的
    另外,我是用C#写的