我在做一个任务 其他都过了 可是一个新增界面过不了 一会他报错说 第0行处没有内容 一会连错也不报了 下面是我写的代码 看看是什么问题
private void Button1_Click(object sender, System.EventArgs e)
{
SqlConnection myconnection=new SqlConnection(stringconnection);
SqlCommand comm=myconnection.CreateCommand();
comm.CommandText="select * from denglu ";
SqlDataAdapter mycommand=new SqlDataAdapter(comm);
mycommand.SelectCommand.Parameters.Add(new SqlParameter("@username",SqlDbType.VarChar,10));
mycommand.SelectCommand.Parameters["@username"].Value=this.TextBox1.Text;
DataSet dr=new DataSet();
try
{
myconnection.Open();
mycommand.Fill(dr,"denglu");
}
catch(Exception ee)
{
this.TextBox1.Text=ee.Message;
Response.Write("ee="+ee.Message);
}
finally
{
myconnection.Close();
}
return; String insertMd="insert into denglu(username,password,power)values(@username,@password,@power)";
SqlCommand Cmd=new SqlCommand(insertMd,myconnection);
Cmd.Parameters.Add(new SqlParameter("@username",SqlDbType.VarChar,10));
Cmd.Parameters["@username"].Value=this.TextBox1.Text;
Cmd.Parameters.Add(new SqlParameter("@password",SqlDbType.VarChar,10));
Cmd.Parameters["@password"].Value=this.TextBox2.Text;
Cmd.Parameters.Add(new SqlParameter("@power",SqlDbType.Bit));

if(this.DropDownList1.SelectedIndex==0)
{
Cmd.Parameters["@power"].Value=true;
}
else
{
Cmd.Parameters["@power"].Value=false;
}
Cmd.Connection.Open();
try

if (dr.Tables["denglu"].Rows[0]["username"].ToString()!=this.TextBox1.Text)
{
if( this.TextBox2.Text==this.TextBox3.Text)
{
Cmd.ExecuteNonQuery();
Response.Write("录入成功");
myconnection.Close();
}
else
{
Response.Write("2次输入密码不相同");
}
}
else
{
Response.Write("用户已存在");
}
}

catch(Exception ee)
{
Response.Write(ee.Message);
}
} }
}

解决方案 »

  1.   

    HERE:--> if (dr.Tables["denglu"].Rows[0]["username"].ToString()!=this.TextBox1.Text)dr.Tables["denglu"].Rows[0]不存在,也就是没有返回结果。所以“第0行处没有内容”
      

  2.   

    comm.CommandText="select * from denglu where username=@username"; 
      

  3.   

    同意lp_net(adela) 的说法
    楼主的第一个SELECT语句中并没有用到@username这一参数,所以你在后面用 mycommand.SelectCommand.Parameters.Add(new SqlParameter"@username",SqlDbType.VarChar,10))去加如该参数是没用的,对参数付的值也没有传递给select语句作为条件。
    而错误“第0行没有内容”应该是你的sqladapter没从数据库中查回任何数据,你可以用MessageBox看下第0行的值,或者是看看dr.Tables["denglu"].Rows.Count是否为0,看下dr中是否有数据。
      

  4.   

    HERE:--> if (dr.Tables["denglu"].Rows[0]["username"].ToString()!=this.TextBox1.Text)dr.Tables["denglu"].Rows[0]不存在,也就是没有返回结果。所以“第0行处没有内容”但是
    dr.Tables["denglu"].Rows[0] 是存在并有数据的
      

  5.   

    to unique32:
    我开始在第一个select语句中 用了 where username=@username;我也用了MessageBox 不成功也不报错