0

对于我在我的天蓝色云中的一个网站,我需要实现一个“混合”缓存。

意思是,我的网站显示来自某个数据库的记录表,并提供添加新记录或更新现有记录的选项。对于读取,我需要实现进程内缓存,对于写入(添加、更新),我需要有进程外缓存。

我在 C# 和天蓝色方面很新。我会很高兴得到一些帮助开始...

目前,我使用简单的 sql 命令来显示、添加或更新:

protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.IsPostBack)
                GridView1.DataBind();
}

protected void Button1_Click(object sender, EventArgs e)
        {
            string InsertCommand = "INSERT INTO [Students] ([Student_Name], [GPA]) VALUES (@Student_Name, @GPA)";
            string connString = SqlAzureDataSource.ConnectionString;
            using (SqlConnection conn = new SqlConnection(connString))
            {
                using (SqlCommand comm = new SqlCommand())
                {
                    comm.Connection = conn;
                    comm.CommandText = InsertCommand;
                    comm.Parameters.AddWithValue("@Student_Name", TextBox1.Text);
                    comm.Parameters.AddWithValue("@GPA", TextBox2.Text);

                    try
                    {
                        conn.Open();
                        comm.ExecuteNonQuery();
                        this.DataBind();
                    }
                    catch (SqlException ex)
                    {
                        Console.WriteLine(ex.StackTrace);
                    }
                }
            }
        }
// Similar for UPDATE

我将不胜感激给予的任何帮助

谢谢

4

1 回答 1

2

有关如何使用 Azure 缓存的链接。这是Windows Server AppFabric上的链接

在架构上,缓存必须在 SQL 查询之上实现。

顺便说一句,如果您是 C# 新手并且正在开发基于 Web 的应用程序,我建议您查看Entity Framework,一个不错的MVVM 模式 ,并且可能使用ASP MVC。单独的实体框架将为您节省大量时间,并且代码将更易于维护。

编辑

将项目添加到缓存的正确方法 - 这是一个示例。让我们假设您有一个名为Employees 的表。您可以创建一个数据集并将查询结果填写到该数据集中。您可以将其保存在缓存中。

再次,请参阅实体框架,它可以让您轻松地做到这一点。在上述示例的基础上,EF 将允许您轻松地在 C# 中创建一个 Employee 类,并将查询结果填充到该类中。

两种情况下的缓存代码都将位于 SQL 查询之上。因此,使用 GetEmployeeDetails() 作为方法创建一个单独的类。发出对 getEmployeeDetails() 的调用,该调用会命中缓存以查看数据是否存在。如果没有,它会命中 SQL。

将 page_load 中的所有内容移到他们自己的类中。

于 2013-05-13T09:07:28.967 回答