用VS写的C#窗体using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data;
using MySql.Data.MySqlClient;
using System.Collections;
using System.Configuration;namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }        private void button1_Click(object sender, EventArgs e)
        {
            string sqlcon = @"server=57f2210******.sh.cdb.myqcloud.com;user id=cdb_outerroot;password=******;database=test1;port=****;charset=utf8mb4;pooling=true";
            string sql = @"
                    select
                        *
                    from
                        user
                    where
                        userid='1'";
            using (MySqlConnection conn = new MySqlConnection(sqlcon))
            {
                conn.Open();
                MySqlCommand cmd = new MySqlCommand(sql, conn);
                MySqlDataReader dr = cmd.ExecuteReader();
                //将结果赋值到了dr,下面开始输出                    
                dr.Read();
                textBox1.Text = dr["userid"].ToString();
                textBox2.Text = dr["username"].ToString();
            }
        }      
    }
}
运行时总是报错“System.Collections.Generic.KeyNotFoundException”类型的未经处理的异常在 mscorlib.dll 中发生 其他信息: 给定关键字不在字典中。本人技术小白,自己在学习一个项目,这个问题已经困扰了我好几天了,希望各位大牛们不吝赐教!感激不尽!

解决方案 »

  1.   

    select
                            *
                        from
                            user
                        where
                            userid='1'
    的结果贴出以供分析。其中有userid,username这些字段吗?
      

  2.   


    不行啊。表里肯定是有这些字段的,我昨天下午新建了一个表就可以连上了,但今天早上再去连接那个表就不行了,不知道是为什么。我在论坛上看有人提到配置config,是不是这个原因,我自己没有动过那个,之前连本机的SQL SERVER也都没问题,就是转到MYSQL怎么都不行
      

  3.   


    而且提错是对于conn.open()这一句报错的。
      

  4.   

    user id=cdb_outerroot改成uid=cdb_outerroot 试试。