【问题标题】:Updating records in SQL Server 2005 with ASP.NET 3.5 - HOW TO?使用 ASP.NET 3.5 更新 SQL Server 2005 中的记录 - 如何?
【发布时间】:2009-07-26 22:45:02
【问题描述】:

我一直使用 SQLDataSource 来更新我在 SQL Server 2005 数据库中的记录,所以我不确定如何在普通代码中完成此操作。我正在使用 VB.NET,但如果您是 C# 开发人员并想向我展示一些非常受欢迎的代码。

我正在使用 ASP.NET 3.5.......

我的用户将看到一个包含 5 个文本框的页面,其中包含他们的联系方式。我将从 SQL Server 数据库中获取这些详细信息,当他们去更改文本框中的文本并单击提交时,它必须保存变化。

使用 SQLDataSource 这很容易,但我如何自己编写代码?

提前致谢!

【问题讨论】:

    标签: c# asp.net sql-server vb.net


    【解决方案1】:

    (原版)ADO.NET 中类似以下内容

    using(var con = new SqlConnection("ConnectionString"))
    {
        using (var cmd = con.CreateCommand())
        {
            // This Example uses a parameterized SQL statement
            // but you can also use SQL Server stored procedures
    
            cmd.CommandText = "UPDATE table SET field1 = @field1, field2 = @field2 WHERE id = @id"; // etc, etc    
            cmd.CommandType = CommandType.Text;
    
            // Add values for the parameter values for the 
            // parameter placeholders in the SQL statement
            cmd.Parameters.AddWithValue("field1", Textbox1.Text);
            cmd.Parameters.AddWithValue("field2", Textbox2.Text);  
            cmd.Parameters.AddWithValue("id", myObject.Id);                
    
            con.Open();
    
            // You might want to use ExecuteScalar instead and get a return value back
            // from the database to signal success
            cmd.ExecuteNonQuery();           
        }
    }
    

    关于 ADO.NET 的一个不错的教程 - Accessing SQL Server data in C# with ADO.NET

    当然,使用 ASP.NET 3.5,您还可以选择 LINQ to SQL 或实体框架。

    还有NHibernate,一个非常流行的开源对象关系映射器,非常适合基本的 CRUD 应用程序。

    【讨论】:

    • 我通常会尽量远离 ADO.NET,有任何 btnSubmit 按钮的代码吗?
    • 您尝试远离 ADO.NET 究竟是为什么?不知何故,我感觉您正在使用 ADO.NET 而没有意识到这一点。在任何情况下,提交按钮的代码的结构都与上面的代码完全相同。看起来您在数据访问方面需要一些补救帮助,我认为您最好买一本关于 ADO.NET 的书。个别问题可能不是了解这一点的最佳方式。
    • 我只是喜欢将我的代码保留在 HTML 页面之外,如果这可以解释为什么我说我不喜欢 ADO.NET?
    • 此代码最好放在代码隐藏文件中,不要与 aspx 标记混合。代码隐藏文件/类是 .NET 2.0 中引入的一个特性,引入了部分类。
    【解决方案2】:

    AI AI AI.........我是愚蠢的。

    我想在我的 PAGE LOAD 事件上放置一个 IF NOT ISPOSTBACK 语句,因为当我单击提交按钮时我从数据库重新加载了我的记录,它用旧记录更新了记录!

    【讨论】:

      猜你喜欢
      • 2013-08-09
      • 2010-10-13
      • 2013-03-23
      • 1970-01-01
      • 2010-10-16
      • 1970-01-01
      • 1970-01-01
      • 2012-09-29
      • 1970-01-01
      相关资源
      最近更新 更多