数据库与asp.net

数据库与asp.net,asp.net,sql,vb.net,Asp.net,Sql,Vb.net,我的目标是手动或使用sqladapater连接到我的数据库,并从SQLServer2005上的两个数据库获取信息。 然后我想获取这些信息,并在运行时开始对某些列进行加/减/除/乘,然后将这些信息放入其他列中。我可以在查询中这样做,但是,我想在运行时这样做,实现这一点的最佳方法是什么。 我做了一些工作,但我只想重新开始,看看你会怎么做 Partial Class _Default Inherits System.Web.UI.Page Public cmd As New SqlCo

我的目标是手动或使用sqladapater连接到我的数据库,并从SQLServer2005上的两个数据库获取信息。 然后我想获取这些信息,并在运行时开始对某些列进行加/减/除/乘,然后将这些信息放入其他列中。我可以在查询中这样做,但是,我想在运行时这样做,实现这一点的最佳方法是什么。 我做了一些工作,但我只想重新开始,看看你会怎么做

Partial Class _Default
    Inherits System.Web.UI.Page
    Public cmd As New SqlCommand()
    Public da As New SqlDataAdapter(cmd)
  conn string here.....
    Dim ds As New DataSet

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        cmd.Connection = conn
        conn.Open()

        ' Dim ds As New DataSet
        Dim x As New DataTable

        cmd.CommandText = "SELECT B603SalesAsOFMASTER.DIVISION, B603SalesAsOFMASTER.SDESCR, B603SalesAsOFMASTER.DYYYY, B603SalesAsOFMASTER.AsOFSales, B603SalesAsOFMASTER.ASOFPAX, B603SalesAsOFMASTER.YESales, B603SalesAsOFMASTER.YEPAX, B603SalesAsOFMASTER.PCTofSales, B603SalesAsOFMASTER.PCTofPAX, B601SalesAsOF.Sales AS [Current Sales], B601SalesAsOF.PAX AS [Current PAX], B601SalesAsOF.Sales / B601SalesAsOF.PAX AS [AVG PAX], B601SalesAsOF.Sales / B603SalesAsOFMASTER.PCTofSales AS [Projected Year End] FROM B603SalesAsOFMASTER INNER JOIN B601SalesAsOF ON B603SalesAsOFMASTER.SDESCR = B601SalesAsOF.SDESCR WHERE (B603SalesAsOFMASTER.DYYYY = '2008') AND (B601SalesAsOF.DYYYY = '2010')"
        'da.Fill(ds)
        da.Fill(x)


        GridView1.DataSource = x

        GridView1.DataBind()

        da.FillSchema(ds, SchemaType.Mapped)

        conn.Close()
    End Sub

End Class
这就是我现在正在玩的东西,我的一些计算是直接在sql命令中完成的,但我想改变这一点。

创建一个 2个Sqlconnections,每个db一个 如果只是读取数据,请使用sqlreader;如果需要进行更改,请使用适配器。 使用sql字符串或存储过程来检索“未计算”的数据,但如果计划允许用户界面进行任何筛选,请确保这些数据已参数化

*关于回避问题的研究

创建一个 这是您可以从DAL获取数据并进行计算的地方

表示层 看起来这将是一个带有网格查看器的网页,或者可能是一个基于您需要的转发器控件。以下是一些让您开始的想法:

创建一个 2个Sqlconnections,每个db一个 如果只是读取数据,请使用sqlreader;如果需要进行更改,请使用适配器。 使用sql字符串或存储过程来检索“未计算”的数据,但如果计划允许用户界面进行任何筛选,请确保这些数据已参数化

*关于回避问题的研究

创建一个 这是您可以从DAL获取数据并进行计算的地方

表示层 看起来这将是一个带有网格查看器的网页,或者可能是一个基于您需要的转发器控件。下面是一些让您开始的想法:

听起来您在问如何将计算字段从SQL查询中移出,并在查询和datagrid绑定之间转换为代码。(如果我的解释不正确,请告诉我。)如果是这样的话,你应该有你想要的

另一方面,你们班上那些公开数据访问的成员让我感到不安。这些可能是最好的私人。或者,更好的是,封装在使用它们的单一方法中。加入一些try/catch/finally以获得良好的度量和资源清理(当然:)

这听起来像是在问如何将计算字段从SQL查询中移出,并在查询和datagrid绑定之间转换为代码。(如果我的解释不正确,请告诉我。)如果是这样的话,你应该有你想要的


另一方面,你们班上那些公开数据访问的成员让我感到不安。这些可能是最好的私人。或者,更好的是,封装在使用它们的单一方法中。加入一些try/catch/finally以获得良好的度量和资源清理,当然:)

这是非常模糊的。基本上你是在问“我如何编写一个使用数据的程序?”你能说得更具体些吗?让我们看看你到目前为止做了什么?如果有一个特定的问题,给我们足够的代码来重现这个问题?很抱歉,我补充了一些detail@David+1表示得体的回答。代码有帮助,但仍然有点模糊。尤其是当您使用“columns”这个词时,它可能会引用数据库或网格控件。基于SQL查询,我是否可以假设您真正要问的是:“我有一个绑定到SQL查询的DataGrid,该查询包含计算字段。如何将这些字段计算移出查询并转换为代码,然后仍然将DataGrid绑定到最终结果?”我希望在将数据绑定到dataset或datatable之后,我可以进行计算,然后重新绑定到另一个数据集,然后将datagrid绑定到该数据集。我的问题很模糊,主要是因为我对如何处理这个问题一无所知。我感谢你的帮助这是非常模糊的。基本上你是在问“我如何编写一个使用数据的程序?”你能说得更具体些吗?让我们看看你到目前为止做了什么?如果有一个特定的问题,给我们足够的代码来重现这个问题?很抱歉,我补充了一些detail@David+1表示得体的回答。代码有帮助,但仍然有点模糊。尤其是当您使用“columns”这个词时,它可能会引用数据库或网格控件。基于SQL查询,我是否可以假设您真正要问的是:“我有一个绑定到SQL查询的DataGrid,该查询包含计算字段。如何将这些字段计算移出查询并转换为代码,然后仍然将DataGrid绑定到最终结果?”我希望在将数据绑定到dataset或datatable之后,我可以进行计算,然后重新绑定到另一个数据集,然后将datagrid绑定到该数据集。我的问题很模糊,主要是因为我对如何处理这个问题一无所知。感谢您的帮助最后一件事,如果我想将计算列放在两列之间,我怎么能这样做?thanks@NEWprogrammer:页面上列的顺序应该无关紧要。
asp:BoundColumn
元素可以是任意顺序的,只要它们具有正确的
DataField
属性,就可以正确绑定。hmmm在我的asp端,没有列名或任何内容。我想使用教程中的方法,将我在.net中创建的列放在两个sql列之间最后一件事是,如果我想将计算列放在两个列之间,我该怎么做?thanks@NEWprogrammer:页面上列的顺序应该无关紧要。
asp:BoundColumn
元素可以是任意顺序的,只要它们具有正确的
DataField
属性,就可以正确绑定。hmmm在我的asp端,没有列名或任何内容。我想使用教程中的方法,并将我在.net中创建的列放入其中