【问题标题】:Help with using SQL select statement in C#帮助在 C# 中使用 SQL select 语句
【发布时间】:2011-07-21 12:47:40
【问题描述】:

我正在尝试使用 SQL 中的简单 SELECT 语句从数据库中检索一些行并将它们显示在数据网格中,现在我要做的是将检索到的值与某个因子相乘,然后显示它。我正在尝试通过以下方式实现它:

我已将 PerDoseSize1 声明为从函数获取其值的双变量。我不能这样做。 它给了我一个错误,说“PerDoseSize1 不是有效的列”

  public void FillDG1(string Chemical_Name0, string Chemical_Name1, string Chemical_Name2, string Chemical_Name3,double PerDoseSize1)
{

  objDs.Clear();
  string connString ="Data Source=dk1;Integrated Security=True";
  SqlConnection con = new SqlConnection(connString);
  con.Open();
  SqlCommand cmd = new SqlCommand();
  cmd.Connection = con;
  cmd.CommandType = System.Data.CommandType.Text;
  cmd.CommandText = "SELECT [Chemical Name],([GWP])*(perdosesize) AS GlobalWarming, ([ODP])*(perdosesize) AS OzoneDepletion,  [WDP] AS WaterDepletion ,[FDP] AS FossilDepletion FROM [Surfactants$] WHERE ([Chemical Name] IN ( @ChemicalName0, @ChemicalName1,@ChemicalName2 ,@ChemicalName3)) ";
  cmd.Parameters.AddWithValue("@ChemicalName0",Chemical_Name0);
  cmd.Parameters.AddWithValue("@ChemicalName1", Chemical_Name1);
  cmd.Parameters.AddWithValue("@ChemicalName2", Chemical_Name2);
  cmd.Parameters.AddWithValue("@ChemicalName3", Chemical_Name3);
  cmd.Parameters.AddWithValue("@perdosesize", PerDoseSize1);
 SqlDataAdapter dAdapter = new SqlDataAdapter();
  dAdapter.SelectCommand = cmd;
  dAdapter.Fill(objDs);
 DataTable myDataTable = objDs.Tables[0];
 DG1.DataContext = objDs.Tables[0].DefaultView;     
  cmd.ExecuteNonQuery();
  MessageBox.Show(ChemicalName0,ChemicalName1);
  con.Close();
}

它似乎仍然不起作用,它仍然是错误的吗?请帮忙!

【问题讨论】:

    标签: wpf datagrid c#-to-vb.net sql


    【解决方案1】:

    你写它的方式:

    "SELECT ([GWP])*(PerDoseSize1) AS GlobalWarming, ([ODP])*(PerDoseSize1) 
    

    将不起作用,因为您传入的函数参数不会在您的 SQL 中被替换。

    因此,您可以尝试为 PerDoseSize1 创建一个 Parameter 参数并将其传递给 SQL,就像您使用 AddWithValue 所做的那样。

    【讨论】:

      【解决方案2】:

      我已将 PerDoseSize1 声明为 获取其值的双变量 来自函数

      那又怎样?它是如何进入 SQL 的?到目前为止,还没有什么说的。您必须将其放入 SQL 并将其分配给参数。它不会神奇地连接起来。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-26
        • 1970-01-01
        • 2011-03-31
        • 1970-01-01
        相关资源
        最近更新 更多