SqlConnection myConnection = new SqlConnection(myConnectionString);
   SqlCommand myCommand = new SqlCommand(mySelectQuery, myConnection);
   myCommand.Connection.Open();
   SqlDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
 if (myReader.Read()) 
   {
      //表示有数据,你可以在这个地方顺便取出来.
   }
   myReader.Close();
   myConnection.Close();

解决方案 »

  1.   

    以下代码。返回错误如下:
    不能使用空白的对象或列名。如果必要,请使用一个空格。
    为什么呢。
    另外。因为打开一个连接后需要处理很多事务。不单是查询一次就算了。
    所以我把代码改成如下。不知道那里错了。
    string strConn = "user id=sa;password=sqlgoodboy;";
    strConn += "initial catalog=Music;data source=127.0.0.1;";
    strConn += "Connect Timeout=30";
    SqlConnection myConn = new SqlConnection ( strConn ) ;
    myConn.Open ();
    for(int i = 0 ; i < 5 ; i ++)
    {
    string[] temp = new string[7];
    temp[0] = "歌曲";
    temp[1] = "url";
    temp[2] = "歌手";
    temp[3] = "歌手地区";
    temp[4] = "歌手介绍";
    temp[5] = "专辑";
    temp[6] = "专辑语言";
    string strSQLSongName = "SELECT song_id FROM songs where song_name = " + temp[0] + "\"";
    SqlCommand SongName = new SqlCommand(strSQLSongName, myConn);
    SqlDataReader myReaderSong = SongName.ExecuteReader();
    if (myReaderSong.Read()) 
    {
    MessageBox.Show ("有数据");
    }
    MessageBox.Show ("没有数据");
    }
      

  2.   

    insert into ....; select @@IDENTITY
      

  3.   

    在一条 INSERT、SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含此语句产生的最后的标识值。若此语句没有影响任何有标识列的表,则 @@IDENTITY 返回 NULL。若插入了多个行,则会产生多个标识值,@@IDENTITY 返回最后产生的标识值。如果此语句激发一个或多个执行产生标识值的插入操作的触发器,则语句执行后立即调用 @@IDENTITY 将返回由触发器产生的最后的标识值。若 INSERT 或 SELECT INTO 语句失败或大容量复制失败,或事务被回滚,则 @@IDENTITY 值不会还原为以前的设置。在返回插入到表的 @@IDENTITY 列的最后一个值方面,@@IDENTITY、SCOPE_IDENTITY 和 IDENT_CURRENT 函数类似。
      

  4.   

    请问。在c#中如何调用@@IDENTITY ?
      

  5.   

    string strInsertSingers = "INSERT INTO singers ( singer_name , singer_zone , singer_intro ) VALUES ( '" + temp[2] + "' , '"  +temp[3] + "' , '" +temp[4] + "')"; 
    SqlCommand SqlCmdInsertSingers = new SqlCommand(strInsertSingers, myConn);
    SqlCmdInsertSingers.ExecuteNonQuery();string strSqlSingers2 = "SELECT singer_id FROM singers where singer_name = '" + temp[2] + "'";
    SqlCommand CmdSingers2 = new SqlCommand(strSqlSingers2, myConn);
    SqlDataReader myReaderSingers2 = CmdSingers2.ExecuteReader();
    GetSingers_id = myReaderSingers2[0].ToString(); 
    myReaderSingers2.Close();这里提示:在没有任何数据的时后进行无效的读取尝试。可是数据命名插入了阿。我在数据库中也看见数据了。
      

  6.   

    string strSQLSongName = "SELECT song_id FROM songs where song_name = '" + temp[0] + "'";
      

  7.   

    呵,,,,,我也是新手,因为我听别人给我讲解了Asp.net的数据存储原理,它用的应该是pool吧?你在每次操作数据都得myConnection.Open();myConnection.Close();如果有myReader并关闭相关的myReader.Close();