如何将变量中的值添加到数据表中

how to add the value in a variable to a datatable

我有一个叫 datatablebuyDataTable。我需要将一个名为 avg 的值插入 DataTable 并将其显示在 girdview 中。我从名为 transac 的数据库中获得了 datatablebuy 的值。如何将变量 "avg" 中的值添加到 datatablebuy。我正在使用 C# 进行编码,代码如下所示:

protected void Button1_Click(object sender, EventArgs e)
{
     try
     {
            SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
            conn.Open();
            var sql = @"select scriptname,accnum,Quantity,price from transac where transactio = 'Sell' and scriptname = '" + TextBox2.Text + "' and accnum ='" + TextBox1.Text + "'";
            var sqll = @"select scriptname,accnum,Quantity,price from transac where transactio = 'Buy' and scriptname ='" + TextBox2.Text + "' and accnum ='" + TextBox1.Text + "'";
            var da = new SqlDataAdapter(sqll, conn);
            var dataTablebuy = new DataTable();
            da.Fill(dataTablebuy);
            var dataAdapter = new SqlDataAdapter(sql, conn);
            var dataTablesell = new DataTable();
            dataAdapter.Fill(dataTablesell);
            foreach (DataRow row in dataTablesell.Rows)
            {
                foreach (DataRow rw in dataTablebuy.Rows)
                {
                    if (double.Parse(rw["Quantity"].ToString()) > double.Parse(row["Quantity"].ToString()))
                    {
                        rw["Quantity"] = double.Parse(rw["Quantity"].ToString()) - double.Parse(row["Quantity"].ToString());
                        row["Quantity"] = 0;
                    }
                    else
                    {
                        row["Quantity"] = double.Parse(row["Quantity"].ToString()) - double.Parse(rw["Quantity"].ToString());
                        rw["Quantity"] = 0;
                    }
                }
            }
            float denom = 0;
            float numer = 0;
            float avg = 0;
            foreach (DataRow rw in dataTablebuy.Rows)
            {
                denom = denom + int.Parse(rw["Quantity"].ToString());
                numer = numer + (int.Parse(rw["Quantity"].ToString()) * int.Parse(rw["price"].ToString()));
                avg = numer / denom;

            }
            GridView1.DataSource = dataTablebuy;
            GridView1.DataBind();
            ViewState["dataTablebuy"] = dataTablebuy;
            GridView1.Visible = true;
            Response.Write("average " +avg.ToString());                
     }
     catch (System.Data.SqlClient.SqlException sqlEx)
     {
         Response.Write("error" + sqlEx.ToString());
     }
     catch (Exception ex)
     {
         Response.Write("error" + ex.ToString());
     }    
}
dataTablebuy.Columns.Add("avg", typeof(int));

foreach (DataRow rw in dataTablebuy.Rows)
{
   rw["avg"] = //Pleaase assign average value here
}       

我希望这会奏效。

之后
dataAdapter.Fill(dataTablesell);

您必须像这样向 DataTable 添加列

dataTablesell.Columns.Add("avg",typeof(decimal));

然后里面

foreach (DataRow row in dataTablesell.Rows)
            {
                foreach (DataRow rw in dataTablebuy.Rows)
                {
                 row["avg"]=0;
                 //set your avg value here
                }
            }

首先将 avg 列添加到 dataTablebuy 数据表中,然后将 avg 变量分配给 avg 列。

protected void Button1_Click(object sender, EventArgs e)
{
    try
    {
        SqlConnection conn = new      SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
        conn.Open();
        var sql = @"select scriptname,accnum,Quantity,price from transac where transactio = 'Sell' and scriptname = '" + TextBox2.Text + "' and accnum ='" + TextBox1.Text + "'";
        var sqll = @"select scriptname,accnum,Quantity,price from transac where transactio = 'Buy' and scriptname ='" + TextBox2.Text + "' and accnum ='" + TextBox1.Text + "'";
        var da = new SqlDataAdapter(sqll, conn);
        var dataTablebuy = new DataTable();
        da.Fill(dataTablebuy);
        dataTableBuy.Columns.Add("Avg",typeof(float));
        var dataAdapter = new SqlDataAdapter(sql, conn);
        var dataTablesell = new DataTable();
        dataAdapter.Fill(dataTablesell);
        foreach (DataRow row in dataTablesell.Rows)
        {
            foreach (DataRow rw in dataTablebuy.Rows)
            {
                if (double.Parse(rw["Quantity"].ToString()) > double.Parse(row["Quantity"].ToString()))
                {
                     rw["Quantity"] = double.Parse(rw["Quantity"].ToString()) - double.Parse(row["Quantity"].ToString());
                     row["Quantity"] = 0;

 }
                else
                {
                    row["Quantity"] = double.Parse(row["Quantity"].ToString()) - double.Parse(rw["Quantity"].ToString());
                    rw["Quantity"] = 0;

                }
            }
        }
        float denom = 0;
        float numer = 0;
        float avg = 0;
        foreach (DataRow rw in dataTablebuy.Rows)
        {
            denom = denom + int.Parse(rw["Quantity"].ToString());
            numer = numer + (int.Parse(rw["Quantity"].ToString()) * int.Parse(rw["price"].ToString()));
            avg = numer / denom;
            rw["Avg"] = avg;
        }
        GridView1.DataSource = dataTablebuy;
        GridView1.DataBind();
        ViewState["dataTablebuy"] = dataTablebuy;
        GridView1.Visible = true;
        Response.Write("average " +avg.ToString());

    }
    catch (System.Data.SqlClient.SqlException sqlEx)
    {
        Response.Write("error" + sqlEx.ToString());
    }
    catch (Exception ex)
    {
        Response.Write("error" + ex.ToString());
    }

}