初学asp.net 求教一个注册代码问题。我出现的问题是写一个判断代码来判断
在一个用户名存在的情况下不允许注册/插入数据库,
创建了一个插入数据库的InsertOperate()方法
public static bool InsertPerson(person p)
{
  try
  {
    SqlConnection con=DB.CreateCon();
    con.Open();
    SqlCommand cmd=new SqlCommand("insert into Users values(@userName)",con);
    SqlParameter userName=new SqlParameter("@userName",SqlDbType.VarChar,100);
    userName.Value=p.userName;
    cmd.Parameters.Add(userName);
    cmd.ExecuteNonQuery();
    return true;
  }
  catch(Exception e)
  {
    return false;
  }要如何来写那段判断代码来解决插入数据库的问题?

解决方案 »

  1.   

    public static object hasStr(string sql)
    {
     using(SqlConnection connection = new SqlConnection(connectionString))
         {
        using(SqlCommand cmd = new SqlCommand(SQLString,connection))
    {
    try
    {
     connection.Open();
    object obj = cmd.ExecuteScalar();
    if((Object.Equals(obj,null))||(Object.Equals(obj,System.DBNull.Value)))
    {
      return null;
    }
    else
    {
    return obj;
    }
    }
    你在执行cmd.ExecuteNonQuery();前先
    strSql="select count(1) from 表 where userName='"+userName+"'"
    object obj=hasStr(strSql);
    判断obj的返回值
      

  2.   

    用个返回值,或用try catch 块
      

  3.   

    string sql;
    sql = "select *from Customer where Userid = @userid";
    SqlParameter sqlpuserid = new SqlParameter("@userid",SqlDbType.NVarChar,50);
    sqlpuserid.Value = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(this.tbusername.Text,"md5");
    SqlCommand cmd = new SqlCommand(sql,cnschool);
    cmd.Parameters.Add(sqlpuserid);
    cnschool.Open();
    System.Data.SqlClient.SqlDataReader r;
    r = cmd.ExecuteReader(CommandBehavior.CloseConnection);

    if(r.Read())
    {
    r.Close();
    Page.Response.Write("<script language=javascript>alert('用户名以被占用');</script>");
    }
    else
    {
    Page.Response.Write("<script language=javascript>alert('用户名未被占用');</script>");
    }
      

  4.   

    <script language="javascript">
    <!--
    function IDRequest(n){
    if( window.ActiveXObject)
    {
    xmlhttp_request = new ActiveXObject( "Microsoft.XMLHTTP" ); }
    else if(window.XMLHttpRequest)
    {
     xmlhttp_request = new XMLHttpRequest();
    }
    else return;//定义收到服务器的响应后需要执行的JavaScript函数 
    url=n+document.getElementById('tbusername').value;//调用创建XMLHttpRequest的函数 
    xmlhttp_request.onreadystatechange = doContents;//调用doContents函数 
    xmlhttp_request.open('GET', url, true); 
    xmlhttp_request.send(null);
     } 
     function doContents() { 
    if (xmlhttp_request.readyState == 4) {
    // 收到完整的服务器响应
    if (xmlhttp_request.status == 200)
    {
    //HTTP服务器响应的值OK 
    document.getElementById('message').innerHTML = xmlhttp_request.responseText; 
    //将服务器返回的字符串写到页面中ID为message的区域 

    else 

    alert('服务器出错');
    } } 

    --> </script>