代码如下:
string sqlstr1,sqlstr2;
 
sqlstr1="insert into test (条码,阅览室ID,时间,单位) values(@kahao,@ReadroomName,@time,@danwei)";
sqlstr2="select 单位 from 读者表 where 条码=@kahao";

SqlCommand cm1=new SqlCommand(sqlstr1,sqlcon);
         SqlCommand cm2=new SqlCommand(sqlstr2,sqlcon);
cm2.Parameters.Add(new SqlParameter("@kahao",SqlDbType.NVarChar,20));
cm2.Parameters["@kahao"].Value=txbid.Text;
SqlDataAdapter da1 = new SqlDataAdapter(sqlstr2,sqlcon);
da1.SelectCommand=cm2;

DataSet ds1 = new DataSet();
da1.Fill(ds1,"读者表");
    

cm1.Parameters.Add(new SqlParameter("@kahao",SqlDbType.NVarChar,20));
cm1.Parameters.Add(new SqlParameter("@ReadroomName",SqlDbType.NVarChar,20));
cm1.Parameters.Add(new SqlParameter("@time",SqlDbType.NVarChar,20));
cm1.Parameters.Add(new SqlParameter("@danwei",SqlDbType.VarChar,50));
cm1.Parameters["@kahao"].Value=txbid.Text;
cm1.Parameters["@ReadroomName"].Value=drpdn.SelectedItem.Value;
cm1.Parameters["@time"].Value=DateTime.Now.ToString();
cm1.Parameters["@danwei"].Value=ds1.Tables[0].Rows[0][0].ToString();

cm1.Connection.Open();
cm1.ExecuteNonQuery();
cm1.Connection.Close();
调试通过,但是运行的时候总说我这句有问题:da1.Fill(ds1,"读者表");
为什么呀?烦死了

解决方案 »

  1.   

    这段代码没加cm2相关的语句,也就是不实现插入单位这个功能的时候,没open也运行的好好的,就是把插入单位这个功能一加入,就出现那个错误了
      

  2.   

    异常详细信息: System.Data.SqlClient.SqlException: 第 1 行: ' ' 附近有语法错误。源错误: 
    行 115:
    行 116:  DataSet ds1 = new DataSet();
    行 117:  da1.Fill(ds1);
    行 118:  //txbid.Text=ds1.Tables[0].Rows[0][0].ToString();
    行 119:     
     源文件: c:\inetpub\wwwroot\liutong\webform1.aspx.cs    行: 117 
      

  3.   

    string sqlstr1;  
    sqlstr1="insert into test (条码,阅览室ID,时间,单位) values(@kahao,@ReadroomName,@time,@danwei)";
    SqlCommand cm1=new SqlCommand(sqlstr1,sqlcon);
    cm1.Parameters.Add(new SqlParameter("@kahao",SqlDbType.NVarChar,20));
    cm1.Parameters.Add(new SqlParameter("@ReadroomName",SqlDbType.NVarChar,20));
    cm1.Parameters.Add(new SqlParameter("@time",SqlDbType.NVarChar,20));
    cm1.Parameters.Add(new SqlParameter("@danwei",SqlDbType.VarChar,50));
    cm1.Parameters["@kahao"].Value=txbid.Text;
    cm1.Parameters["@ReadroomName"].Value=drpdn.SelectedItem.Value;
    cm1.Parameters["@time"].Value=DateTime.Now.ToString();
    cm1.Parameters["@danwei"].Value=ds1.Tables[0].Rows[0][0].ToString();
    cm1.Connection.Open();
    cm1.ExecuteNonQuery();
    cm1.Connection.Close();string sqlstr2;
    sqlstr2="select 单位 from 读者表 where 条码=@kahao";
    SqlCommand cm2=new SqlCommand(sqlstr2,sqlcon);
    cm2.Parameters.Add(new SqlParameter("@kahao",SqlDbType.NVarChar,20));
    cm2.Parameters["@kahao"].Value=txbid.Text;
    SqlDataAdapter da1 = new SqlDataAdapter(sqlstr2,sqlcon);
    da1.SelectCommand=cm2;
    DataSet ds1 = new DataSet();
    da1.Fill(ds1);
    //覆盖回去就可以了,把你代码调整了一下,这样清晰一些,出错原因是"条码=@kahao"中间你用的等号是中文下的.
      

  4.   

    string sqlstr2;
    sqlstr2="select 单位 from 读者表 where 条码=@kahao";//这里出错了,sql语句出错
    SqlCommand cm2=new SqlCommand(sqlstr2,sqlcon);
    cm2.Parameters.Add(new SqlParameter("@kahao",SqlDbType.NVarChar,20));
    cm2.Parameters["@kahao"].Value=txbid.Text;
    SqlDataAdapter da1 = new SqlDataAdapter(sqlstr2,sqlcon);
    da1.SelectCommand=cm2;
    DataSet ds1 = new DataSet();
    da1.Fill(ds1);string sqlstr1;  
    sqlstr1="insert into test (条码,阅览室ID,时间,单位) values(@kahao,@ReadroomName,@time,@danwei)";
    SqlCommand cm1=new SqlCommand(sqlstr1,sqlcon);
    cm1.Parameters.Add(new SqlParameter("@kahao",SqlDbType.NVarChar,20));
    cm1.Parameters.Add(new SqlParameter("@ReadroomName",SqlDbType.NVarChar,20));
    cm1.Parameters.Add(new SqlParameter("@time",SqlDbType.NVarChar,20));
    cm1.Parameters.Add(new SqlParameter("@danwei",SqlDbType.VarChar,50));
    cm1.Parameters["@kahao"].Value=txbid.Text;
    cm1.Parameters["@ReadroomName"].Value=drpdn.SelectedItem.Value;
    cm1.Parameters["@time"].Value=DateTime.Now.ToString();
    cm1.Parameters["@danwei"].Value=ds1.Tables[0].Rows[0][0].ToString();
    cm1.Connection.Open();
    cm1.ExecuteNonQuery();
    cm1.Connection.Close();
      

  5.   

    我在查询分析器里输入这个语句:
    select 单位 from 读者表 where 条码 = 0000000000
    查询分析器也显示这样的错误:第 2 行: ' ' 附近有语法错误。
    这到底什么原因呀,各位大哥,各路神仙,帮帮小妹啊,
      

  6.   

    where 前面有问题, 把间隔删了,改成1个空格, 正常.改好的:
    select 单位 from 读者表 where 条码 = 0000000000
      

  7.   

    所以代码如下string sqlstr1,sqlstr2;
     
    sqlstr1="insert into test (条码,阅览室ID,时间,单位) values(@kahao,@ReadroomName,@time,@danwei)";
       
    cm1.Parameters.Add(new SqlParameter("@kahao",SqlDbType.NVarChar,20));
    cm1.Parameters.Add(new SqlParameter("@ReadroomName",SqlDbType.NVarChar,20));
    cm1.Parameters.Add(new SqlParameter("@time",SqlDbType.NVarChar,20));
    cm1.Parameters.Add(new SqlParameter("@danwei",SqlDbType.VarChar,50));
    cm1.Parameters["@kahao"].Value=txbid.Text;
    cm1.Parameters["@ReadroomName"].Value=drpdn.SelectedItem.Value;
    cm1.Parameters["@time"].Value=DateTime.Now.ToString();
    cm1.Parameters["@danwei"].Value=ds1.Tables[0].Rows[0][0].ToString();

    cm1.Connection.Open();
    cm1.ExecuteNonQuery();
    cm1.Connection.Close();sqlstr2="select 单位 from 读者表 where 条码 = @kahao";

    SqlCommand cm1=new SqlCommand(sqlstr1,sqlcon);
    SqlCommand cm2=new SqlCommand(sqlstr2,sqlcon);
    cm2.Parameters.Add(new SqlParameter("@kahao",SqlDbType.NVarChar,20));
    cm2.Parameters["@kahao"].Value=txbid.Text;
    SqlDataAdapter da1 = new SqlDataAdapter(sqlstr2,sqlcon);
    da1.SelectCommand=cm2;

    DataSet ds1 = new DataSet();
    da1.Fill(ds1,"读者表");
      

  8.   

    总算可以了,哭死,太粗心了,真丢脸。
    谢谢楼上的大哥们,csdn真的是个好地方