大家好,请问如果有一个表test,通过excel(有单元格合并)数据导入后保存了如下的数据,其中ID为"2、3、4、5”的图书名都是作者为”三毛“的人写的,但是ID为"3、4、5”的作者名称都是空的,请问如何判断"AUTHOR"字段是否为空并通过循环为其赋值,谢谢,在线等。ID AUTHOR   NAME          DATATIME
1 刘若英   下楼         2007-10-11
2 三毛   邂逅撒哈拉     2007-10-12
3   稻草         2007-10-13
4   雨季不再来     2007-10-14
5   温柔的夜       2007-10-15
6 安妮宝贝   二月河         2007-10-16

解决方案 »

  1.   

    sql=select * from test where AUTHOR is null
      

  2.   

    谢谢楼上,我想判断它是否为空,如果为空,自动为其赋值,比如ID为"2、3、4、5”的图书名都是作者为”三毛“的人写的,但是ID为"3、4、5”的作者名称都是空的,我想把ID为"3、4、5”的作者名称也赋值为"三毛",请问应该如何下手
      

  3.   

    我的代码是这样的,不知道怎么回事,总是只填充一行,不能填充多行
    string AUTHOR,ID;
    try
     {
        conn.Open();
        DataTable dt=Connect.BindTable( "select * from test");
       if(dt.Rows.Count != 0)
         {
           for(int i=1;i<dt.Rows.Count;i++)
    {
      AUTHOR=dt.Rows[i][1].ToString();
      ID=dt.Rows[i][0].ToString();
      if ( AUTHOR =="" && ID != "")
        {       AUTHOR=dt.Rows[i - 1][1].ToString();       string sql="update Test set Author='"+AUTHOR+"'  WHERE  ID='"+ID+"'";
          SqlCommand myCmd=new  SqlCommand(sql,conn);       myCmd.ExecuteNonQuery(); }                  
           }
           conn.Close();
          }
         catch(Exception exc)
           {
    conn.Close();
    string s = exc.ToString();
    return; 
            }
      

  4.   

    --查詢
    Select
    ID,
    (Case When IsNull(AUTHOR, '') = '' Then (Select TOP 1 AUTHOR From Test Where ID < A.ID And IsNull(AUTHOR, '') != '' Order By ID Desc) Else AUTHOR End) As AUTHOR,
    NAME,
    DATATIME
    From 
    Test A--更新
    Update 
    A
    Set 
    AUTHOR = (Select TOP 1 AUTHOR From Test Where ID < A.ID And IsNull(AUTHOR, '') != '' Order By ID Desc)
    From 
    Test A
    Where 
    IsNull(AUTHOR, '') = ''
      

  5.   

    ID AUTHOR   NAME          DATATIME
    1 刘若英   下楼         2007-10-11update test set Author ='三毛' where Author is null