【问题标题】:Treeview menu Control by access user树视图菜单 访问用户控制
【发布时间】:2015-04-28 13:59:40
【问题描述】:

我想获取 sql server 的特定值。 现在的sql表如下。

**ID  /      PW   /    Depart**  
AAA   /    1234   /  1   
BBB   /    2345   /  2   
...      
**LKL** /  8765  /  **9**

例如, 当 LKL 用户访问登录表单时, 我想得到Depart code 9。

但它不起作用。 也许有些问题。但我再也找不到了。

这是我的代码。我会珍惜任何想法。

谢谢。

private void MForm_Load(object sender, EventArgs e)
        {
            Logon lf = new Logon();
            String tx = lf.IDTBox.Text;
            String str = "Server = 102.201.10.17; Database = Dorw; UID = sa; Password = 565p89";
            String qur = "SELECT Depart FROM dbo.PW WHERE Name = @tx";
            SqlConnection con = new SqlConnection(str);
            SqlCommand cmd = new SqlCommand(qur, con);
            cmd.Parameters.AddWithValue("@tx", tx);
            con.Open();
            using(SqlDataReader reader = cmd.ExecuteReader())
            switch (reader.ToString())
            {
            case "0":
                break;

            case "1":
                treeView1.Nodes[1].Nodes[1].Remove();
                break;

            case "9":
                treeView1.Nodes[0].Nodes[0].Remove();
                treeView1.Nodes[1].Nodes[0].Remove();
                treeView1.Nodes[1].Nodes[1].Remove();
                break;
            }
       con.Close();
       }

【问题讨论】:

    标签: c# sql-server winforms treeview erp


    【解决方案1】:

    SqlDataReader.ToString() 不返回它的内部数据。这将可能返回类型的名称。

    由于您的阅读器返回一列,您可以使用(string)reader[0] 作为开关表达式。

    但如果想阅读您的阅读器,由于SqlDataReader 的默认位置是第一条记录之前,您必须调用Read 才能开始访问任何数据。

    while(reader.Read())
    {
       switch ((string)reader[0])
       {
          ...
       }
    }
    

    但老实说,我不明白您为什么将这些整数值保留为字符。最好将它们保存为整数并将它们转换为程序中的字符串。

    作为更好的选择,您可以使用ExecuteScalar,它返回第一列的第一行,看起来这正是您想要的。

    string value = (string)cmd.ExecuteScalar();
    switch(value)
    {
       ...
    }
    

    还可以使用using 语句来处理您的SqlConnectionSqlCommand,而不是手动调用.Close() 方法。作为最佳实践,不要使用AddWithValue 方法。它可能产生意想不到的和令人惊讶的结果。请改用.Add() method

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-14
      • 2021-04-21
      • 1970-01-01
      • 2015-06-02
      相关资源
      最近更新 更多