0

我不知道为什么我有问题

btn.Text = comando.ExecuteScalar().ToString() ;

陈述。如果有人解释我为什么会遇到问题(顺便说一句,我是新手),我该如何纠正它。谢谢。

 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        SqlCommand comando = new SqlCommand();
        SqlConnection conn = new SqlConnection(@"server=.\SQLEXPRESS;Initial Catalog=try;Integrated Security=True;Pooling=False");
        comando.Connection = conn;
        conn.Open();

        int NumOfButtons = 12;
        int loc = 20;
        int k = 5;
        for (int i = 1; i <= NumOfButtons; i++)
        {
            Button btn = new Button();
            ListBox lst = new ListBox();
            {
                lst.Location = new Point(4, 4);
                btn.Size = new Size(60, 20);
                btn.Tag = i;

                comando.CommandText = "select ProductName from Products where productID = " + btn.Tag;
                btn.Text = comando.ExecuteScalar().ToString() ;  // here error occurs why?
                btn.Location = new Point(k, loc);
            }

            loc += 20;

            if (i > 6)
            {
                if (loc == 160)
                {
                    loc = 20;
                }
                k = 65;
                btn.Location = new Point(k, loc);
            }
            panel1.Controls.Add(btn);
        }
    }
4

3 回答 3

2

我们不知道你会得到什么样的异常,所以它可能是

  • 没有桌子Products
  • 该表Products没有列ProductNameproductId
  • Products表至少缺少一条 productID 为 1 到 12 的记录。
  • ProductNameNULL用于选定的记录之一
于 2013-05-06T12:00:27.030 回答
1

尝试这个,

 ListBox lst = new ListBox();
        {
            try
            {
             lst.Location = new Point(4, 4);
             btn.Size = new Size(60, 20);
             btn.Tag = i;

             comando.CommandText = "select ProductName from Products where productID = " + btn.Tag;
             btn.Text = comando.ExecuteScalar().ToString() ;  // here error occurs why?
             btn.Location = new Point(k, loc);
            }
            catch(Exception ex)
            {
             MessageBox.Show(ex.Message);
            }
        }

现在执行你的应用程序,看看你的应用程序对异常有什么看法。

于 2013-05-06T12:32:23.730 回答
0

问题是我在 sql 语句中使用了一个不在英文字母表中的字符。但在我的问题中,我没有复制和粘贴确切的陈述。因此,当我纠正它时,它就完成了。但在这里我要感谢你们所有人,因为我从你们的回答中学到了更多。多谢。我都对您进行了评价,并且刚刚接受了 devio 的回答以提供更多信息。他陈述了可能出现的问题。对像我这样的新手很有帮助。

于 2013-05-06T12:45:24.697 回答