string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:DataBase Password=Local@July,2005;" + "Data Source=" + Application.StartupPath + "/" + "localvod.mdb";
            using (OleDbConnection myConnection = new OleDbConnection(strConnection))
            {
                myConnection.Open();
                OleDbCommand cmd = new OleDbCommand("select top 1 [SONGNO] from [songs] order by [SONGNO] DESC", myConnection);
                OleDbDataReader dr = cmd.ExecuteReader();
                string numbe = dr["SONGNO"].ToString();
                int number=int.Parse(numbe)+1;
                return number;
            } 
dr["SONGNO"].ToString();抱错"不存在此行/列数据"
SONGNO字段数据一定是有的.不知道为什么抱错

解决方案 »

  1.   

    select max(SONGNO) from songs
      

  2.   

    OleDbCommand cmd = new OleDbCommand("select max(SONGNO) from [songs]", myConnection); 
      

  3.   

    string strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:DataBase Password=Local@July,2005;" + "Data Source=" + Application.StartupPath + "/" + "localvod.mdb"; 
                using (OleDbConnection myConnection = new OleDbConnection(strConnection)) 
                { 
                    myConnection.Open(); 
                    OleDbCommand cmd = new OleDbCommand("select top 1 [SONGNO] as sg from [songs] order by [SONGNO] DESC", myConnection); 
                    OleDbDataReader dr = cmd.ExecuteReader(); 
                    string numbe = dr["SONGNO"].ToString(); 
                    int number=int.Parse(numbe)+1; 
                    return number; 
                } 
    dr["sg"].ToString();抱错"不存在此行/列数据" 
    SONGNO字段数据一定是有的.不知道为什么抱错 
    为什么要加[]???
      

  4.   

      using (OleDbConnection myConnection = new OleDbConnection(strConnection))
                {
                    myConnection.Open();
                    OleDbCommand cmd = new OleDbCommand("select top 1 [SONGNO] from [songs] order by [SONGNO] DESC", myConnection);
                    OleDbDataReader dr = cmd.ExecuteReader();
                    string numbe=string.Empty;
                    int number=0;
                    where(dr.Read())
                   {
                     numbe = dr["SONGNO"].ToString();
                     number=int.Parse(numbe)+1;
                   }
                    return number;
                    
                } 
      

  5.   

    还有少了 dr.Read();这句话
      

  6.   

    你的sql语句怎么这么写呀
    效率太低了
    直接用max函数就可以了
    select max(songno) from songs