Dim sql = "select * from HuiZhan where HuiZhanID = " & HuiZhanID
        Dim rs As New ADODB.Recordset
        rs.Open(sql, conn, 1, 3)
        If rs.EOF() Or rs.BOF() Then
            rs.AddNew()
        End If
        rs("Address").Value = Tool.SqlFix(Request("Address"))
        rs.Update()
 在asp里可以写成上面的形式,首先判断有没有这个记录,有的话修改,没有则添加,在NET应该怎么写呢???

解决方案 »

  1.   

    SqlConnection conn = new SqlConnection("連接字符串");
    conn.Open();
    SqlCommand comm = new SqlCommand(" update sql", conn);
    int i = comm.ExecuteNonQuery();
    if (i == 0)
      {
          comm = new SqlCommand("Insert sql", conn);
          comm.ExecuteNonQuery();
         }
       conn.Close();
      

  2.   

    手头上刚好有一个,楼主可以参考下~~
    先进性判断数据库中是否存在记录,如不存在进行插入!~~
            SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["conStr"]);
            conn.Open();
            string UserName = this.txb_UserName.Text.ToString();
            string PWord = this.txb_PWordold.Text.ToString();
            string EMail = this.txb_EMail.Text.ToString();
            SqlCommand cmd1 = new SqlCommand("select count(*) from tbUser where UserName = '" + UserName + "'", conn);
            int i = Convert.ToInt32(cmd1.ExecuteScalar());
            if (i > 0)
            {
                Response.Write("<script language = javascript>alert('此用户名已经注册!')");
            }
            else
            {
                SqlCommand cmd2 = new SqlCommand("insert into tbUser( UserName, PWord, Email,RoleID) values('" + UserName + "', '" + PWord+ "' , '" + EMail + "',2)", conn);
                cmd2.ExecuteNonQuery();
                Response.Write("<script language = javascript>alert('注册成功!')</script>");
            }
      

  3.   

            SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["conStr"]);
            conn.Open();
            string UserName = this.txb_UserName.Text.ToString();
            string PWord = this.txb_PWordold.Text.ToString();
            string EMail = this.txb_EMail.Text.ToString();
            SqlCommand cmd1 = new SqlCommand("select count(*) from tbUser where UserName = '" + UserName + "'", conn);
            int i = Convert.ToInt32(cmd1.ExecuteScalar());
            if (i > 0)
            {
                SqlCommand cmd3 = new SqlCommand("update ** set(UserName = '" + UserName + "' PWord = '" + PWord +"' ....)",conn);
                cmd3.ExecuteNonQuery();
                Response.Write("<script language = javascript>alert('注册成功!')</script>");
            }
            else
            {
                SqlCommand cmd2 = new SqlCommand("insert into tbUser( UserName, PWord, Email,RoleID) values('" + UserName + "', '" + PWord+ "' , '" + EMail + "',2)", conn);
                cmd2.ExecuteNonQuery();
                Response.Write("<script language = javascript>alert('注册成功!')</script>");
            }
      

  4.   

    也是~~把这个判断写进存储过程的话是比较好~~
    当时写这个的时候因为只是个简单的login注册,所以没去写~~
      

  5.   

    请参考(有C#和vb.net的Code):
    public partial class _Default : System.Web.UI.Page
    {
        string connectionString = ConfigurationManager.AppSettings["sqlconn"];
        SqlConnection objConn = null;
        SqlCommand objCmd = null;
        string strSql = string.Empty;
        
        protected void Page_Load(object sender, EventArgs e)
        {    }    private void btnAdd_Click(object sender, EventArgs e)
        {
            strSql = "select * from [HuiZhan] where [HuiZhanID] = " + HuiZhanID;
            if (IsExist(strSql))
            {
                //记录已经存在
            }
            else
            {
                strSql = "UPDATE [HuiZhan] Set [Address] = '" + Tool.SqlFix(Request("Address")) + "' WHERe [HuiZhanID] = " + HuiZhanID;
                try
                {
                    Insert(strSql);
                    //记录成功插入
                }
                catch (Exception ex)
                    {
                      //输出例外: ex.Message;
                    }
            }    }    private bool IsExist(string strSql)  //用DataReader来检查,比任一个都要快
        {
            objConn = new SqlConnection(connectionString);
            objCmd = new SqlCommand(strSql, objConn);
            objConn.Open();
            SqlDataReader objDr = objCmd.ExecuteReader(CommandBehavior.CloseConnection);
            return objDr.HasRows;
        }    private void Insert(string strSql)
        {
            objConn = new SqlConnection(connectionString);
            objConn.Open();
            objCmd = new SqlCommand(strSql, objConn);
            objCmd.ExecuteNonQuery();
            objConn.Close();
        }Public Partial Class _Default 
        Inherits System.Web.UI.Page 
        Private connectionString As String = ConfigurationManager.AppSettings("sqlconn") 
        Private objConn As SqlConnection = Nothing 
        Private objCmd As SqlCommand = Nothing 
        Private strSql As String = String.Empty 
        
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) 
            
        End Sub 
        
        Private Sub btnAdd_Click(ByVal sender As Object, ByVal e As EventArgs) 
            strSql = "select * from [HuiZhan] where [HuiZhanID] = " & HuiZhanID 
                    '记录已经存在 
            If IsExist(strSql) Then 
            Else 
                strSql = "UPDATE [HuiZhan] Set [Address] = '" & Tool.SqlFix(Request("Address")) & "' WHERe [HuiZhanID] = " & HuiZhanID 
                Try 
                        '记录成功插入 
                    Insert(strSql) 
                        '输出例外: ex.Message; 
                Catch ex As Exception 
                End Try 
            End If 
            
        End Sub 
        
        Private Function IsExist(ByVal strSql As String) As Boolean  '用DataReader来检查,比任一个都要快        objConn = New SqlConnection(connectionString) 
            objCmd = New SqlCommand(strSql, objConn) 
            objConn.Open() 
            Dim objDr As SqlDataReader = objCmd.ExecuteReader(CommandBehavior.CloseConnection) 
            Return objDr.HasRows 
        End Function 
        
        Private Sub Insert(ByVal strSql As String) 
            objConn = New SqlConnection(connectionString) 
            objConn.Open() 
            objCmd = New SqlCommand(strSql, objConn) 
            objCmd.ExecuteNonQuery() 
            objConn.Close() 
        End Sub 
    End Class