Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用于将Ior值从多列填充到组合框的SqlCommand_C#_Sql_Sql Server_Combobox_Sqlcommand - Fatal编程技术网

C# 用于将Ior值从多列填充到组合框的SqlCommand

C# 用于将Ior值从多列填充到组合框的SqlCommand,c#,sql,sql-server,combobox,sqlcommand,C#,Sql,Sql Server,Combobox,Sqlcommand,朋友们好,我有cena1、cena2、cena3列,我需要在combobox中显示它的值,有什么方法可以做到这一点吗? 我试过这个: spojeni.Open(); var cb4 = new SqlCommand("SELECT cena1,cena2,cena3 FROM zajezd WHERE akce="+zakce.Text,spojeni); SqlDataReader dr4 = cb4.ExecuteReader(); wh

朋友们好,我有cena1、cena2、cena3列,我需要在combobox中显示它的值,有什么方法可以做到这一点吗? 我试过这个:

 spojeni.Open();
 var cb4 = new SqlCommand("SELECT cena1,cena2,cena3 FROM zajezd WHERE akce="+zakce.Text,spojeni);

            SqlDataReader dr4 = cb4.ExecuteReader();
            while (dr4.Read())
            {
                comboBox4.Items.Add(dr4["cena1,cena2,cena3"]);


            }
            dr4.Close();
            dr4.Dispose();
但该计划失败了。你能帮帮我吗

            spojeni.Close();

您需要使用数据透视将这些列值更改为行。下面是一个to-use-Pivot子句。或者您可以使用union,因为它只有3列。但我建议使用pivot

例如:

  select cena 
  from (
  select akce, cena1 cena from zajezd
  union all
  select akce, cena2 cena  from zajezd
  union all
  select akce, cena3 cena  from zajezd
  ) t
  where
     t.akce = 
  comboBox4.Items.Add(dr4["cena"]);
在C#中,您可以将列名指定为cena

例如:

  select cena 
  from (
  select akce, cena1 cena from zajezd
  union all
  select akce, cena2 cena  from zajezd
  union all
  select akce, cena3 cena  from zajezd
  ) t
  where
     t.akce = 
  comboBox4.Items.Add(dr4["cena"]);

您需要使用数据透视将这些列值更改为行。下面是一个to-use-Pivot子句。或者您可以使用union,因为它只有3列。但我建议使用pivot

例如:

  select cena 
  from (
  select akce, cena1 cena from zajezd
  union all
  select akce, cena2 cena  from zajezd
  union all
  select akce, cena3 cena  from zajezd
  ) t
  where
     t.akce = 
  comboBox4.Items.Add(dr4["cena"]);
在C#中,您可以将列名指定为cena

例如:

  select cena 
  from (
  select akce, cena1 cena from zajezd
  union all
  select akce, cena2 cena  from zajezd
  union all
  select akce, cena3 cena  from zajezd
  ) t
  where
     t.akce = 
  comboBox4.Items.Add(dr4["cena"]);

这不是检索列值的有效方法

dr4["cena1,cena2,cena3"]
像这样使用它的正确方法

string val1 = Convert.ToString(dr4["cena1"]);
string val2 = Convert.ToString(dr["cena2"]);
string val3 = Convert.ToString(dr["cena3"]);
comboBox4.Items.Add(val1+" " +val2+" " +val3);

您还应该使用参数化查询来避免sql注入。

这不是检索列值的有效方法

dr4["cena1,cena2,cena3"]
spojeni.Open();
var cb4 = new SqlCommand("SELECT cena1,cena2,cena3 FROM zajezd WHERE akce="+zakce.Text,spojeni);

        SqlDataReader dr4 = cb4.ExecuteReader();
        while (dr4.Read())
        {
            comboBox4.Items.Add(dr4["cena1"].ToString() + dr4["cena2"].ToString() + dr4["cena3"].ToString());


        }
        dr4.Close();
        dr4.Dispose();
像这样使用它的正确方法

string val1 = Convert.ToString(dr4["cena1"]);
string val2 = Convert.ToString(dr["cena2"]);
string val3 = Convert.ToString(dr["cena3"]);
comboBox4.Items.Add(val1+" " +val2+" " +val3);
您还应该使用参数化查询来避免sql注入。

更改此选项

spojeni.Open();
var cb4 = new SqlCommand("SELECT cena1,cena2,cena3 FROM zajezd WHERE akce="+zakce.Text,spojeni);

        SqlDataReader dr4 = cb4.ExecuteReader();
        while (dr4.Read())
        {
            comboBox4.Items.Add(dr4["cena1"].ToString() + dr4["cena2"].ToString() + dr4["cena3"].ToString());


        }
        dr4.Close();
        dr4.Dispose();
comboBox4.Items.Add(dr4["cena1,cena2,cena3"]);

您的代码易受Sqlinjection攻击。虽然您可以考虑阅读关于SQL注入的信息

更改这个

comboBox4.Items.Add(dr4["cena1,cena2,cena3"]);


您的代码易受Sqlinjection攻击。尽管您可以考虑阅读关于SQL注入< /p>的信息,但您有SQL注入漏洞。它是如何失败的?您有错误吗?您有SQL注入漏洞。它是如何失败的?你有错误吗?