wzc0415 2016-12-29 03:58 采纳率: 0%
浏览 1278

Mysql查询提示连接没有打开

小弟初学c#和MySQL,现在遇到两个问题望各路大神解惑,一个是我明明开启连接了为什么还会提示connection must be valid and open?
还有一个问题是我的事务创建和启动语句应该放在哪里?如果放在我如下代码区域里,在catch异常时加入rollback会提示上下文不存在trans。
代码如下:

 public void connectToMySqlService(DataGridView gridView, string sqlString,MysqlCmd mys**qlcmd)
        {
                try
                {
                    //创建数据提供者
                    MySqlDataAdapter DataAdapter = new MySqlDataAdapter();  
                    MySqlCommand cmd = new MySqlCommand();
                   conn.Open();    
                   //启动事务
                   /* MySqlTransaction trans = conn.BeginTransaction();
                     cmd.Transaction = trans;
                     */
                    cmd.CommandText = sqlString;
                    switch (mysqlcmd)
                    {
                        case MysqlCmd.select:
                            {
                                DataAdapter.SelectCommand = cmd;
                                int n = DataAdapter.SelectCommand.ExecuteNonQuery();
                                MessageBox.Show("有条 " + n.ToString() + " 记录被查询!");
                                //填充数据集dataset,并为本次填充的数据起名“student_table”
                                DataAdapter.Fill(dataset, "student_table");
                                gridView.DataSource = dataset;
                                //在dataGridView1控件中显示名为student_table的填充数据
                                gridView.DataMember = "student_table";
                                break;
                            }

                        case MysqlCmd.insert:
                            {
                                DataAdapter.InsertCommand = cmd;
                                int n = DataAdapter.InsertCommand.ExecuteNonQuery();
                                MessageBox.Show("有条 " + n.ToString() + " 记录被插入!");
                                mysqlcmd = 0;
                                return;
                            }

                        case MysqlCmd.delete:
                            {
                                DataAdapter.DeleteCommand = cmd;
                                int n = DataAdapter.DeleteCommand.ExecuteNonQuery();
                                MessageBox.Show("有条 " + n.ToString() + " 记录被删除!");
                                mysqlcmd = 0;
                                return;
                            }

                        case MysqlCmd.update:
                            {
                                DataAdapter.UpdateCommand = cmd;
                                int n = DataAdapter.UpdateCommand.ExecuteNonQuery();
                                MessageBox.Show("有条 " + n.ToString() + " 记录被更新!");
                                mysqlcmd = 0;
                                return;
                            }

                        default:
                            break;
                    }

                   // trans.Commit();

                }
                catch (Exception ex)
                {
               // trans.Rollback();

                    MessageBox.Show(ex.ToString());
                }
                finally
                {
                    conn.Close();
                    conn.Dispose();
                    dataset.Dispose();
                    MessageBox.Show("关闭连接");
                }
        }
    }
  • 写回答

1条回答 默认 最新

  • 半杯可可 2023-05-20 09:14
    关注

    你是在连接不上mysql吗

    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)