高人帮我看看MySqlHelper源码哪里问题
这是自己写的能正常显示。求高人给看下源码是不是哪错了。只有这么多分了
string Conn = "Database='<myfendata>';Data Source='localhost';User Id='root';Password='xzjzlj';charset='utf8';pooling=true ";
MySqlConnection dbconn = new MySqlConnection(Conn);//连接MySQL数据库
MySqlCommand cmd = dbconn.CreateCommand();
cmd.Connection.Open();
cmd.CommandType = CommandType.Text;
MySqlDataReader reader;
cmd.CommandText = "select * from member where 1 = 1 ";
reader = cmd.ExecuteReader();
while (reader.Read())
{
textBox1 .Text =(reader["name"].ToString());
}
reader.Close();
cmd.Dispose();
dbconn.Close();
这是网上的MYSQL类
[code=csharp]
//这里显示结果为-1。表时有一行数据
textBox1.Text = MySqlHelper.ExecuteNonQuery(mysql.ConnStr, CommandType.Text, "select * from member", null).ToString();
//提示SQL有错。“MySql.Data.MySqlClient.MySqlException”类型的未经处理的异常出现在 fenhuang.exe 中。
其他信息: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* from member' at line 1
dataGridView1.DataSource = MySqlHelper.GetDataSet(MySqlHelper.Conn, CommandType.Text, " select * from member ", null).Tables[0].DefaultView;
class mysql
{
public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{
MySqlCommand cmd = new MySqlCommand();
using (MySqlConnection conn = new MySqlConnection(connectionString))
{
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
}
/// <summary>
/// 返回DataSet
/// </summary>
/// <param name="connectionString">一个有效的连接字符串</param>
/// <param name="cmdType">命令类型(存储过程, 文本, 等等)</param>
/// <param name="cmdText">存储过程名称或者sql命令语句</param>
/// <param name="commandParameters">执行命令所用参数的集合</param>
/// <returns></returns>
public static DataSet GetDataSet(string connectionString, CommandType cmdType, string cmdText, params MySqlParameter[] commandParameters)
{
//创建一个MySqlCommand对象
MySqlCommand cmd = new MySqlCommand();
//创建一个MySqlConnection对象
MySqlConnection conn = new MySqlConnection(connectionString);
//在这里我们用一个try/catch结构执行sql文本命令/存储过程,因为如果这个方法产生一个异常我们要关闭连接,因为没有读取器存在,
try
{
//调用 PrepareCommand 方法,对 MySqlCommand 对象设置参数
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
//调用 MySqlCommand 的 ExecuteReader 方法
MySqlDataAdapter adapter = new MySqlDataAdapter();
adapter.SelectCommand = cmd;
DataSet ds = new DataSet();
adapter.Fill(ds);
//清除参数
cmd.Parameters.Clear();
conn.Close();
return ds;
}
catch (Exception e)
{
throw e;
}
}
/// <summary>
/// 准备执行一个命令
/// </summary>
/// <param name="cmd">sql命令</param>
/// <param name="conn">OleDb连接</param>
/// <param name="trans">OleDb事务</param>
/// <param name="cmdType">命令类型例如 存储过程或者文本</param>
/// <param name="cmdText">命令文本,例如:Select * from Products</param>
/// <param name="cmdParms">执行命令的参数</param>
private static void PrepareCommand(MySqlCommand cmd, MySqlConnection conn, MySqlTransaction trans, CommandType cmdType, string cmdText, MySqlParameter[] cmdParms)
{
if (conn.State != ConnectionState.Open)
conn.Open();
cmd.Connection = conn;
cmd.CommandText = cmdText;
if (trans != null)
cmd.Transaction = trans;
cmd.CommandType = cmdType;
if (cmdParms != null)
{
foreach (MySqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
}
}
[/code] --------------------编程问答-------------------- 在线等高人,帮我分析一下,这个源码哪里有问题,还是调用错了 --------------------编程问答-------------------- 这里我发现是dataGridView这样有 问题,我用TEXSBOX能正常显示 --------------------编程问答-------------------- 错误显示在这里出现异常:adapter.Fill(ds); --------------------编程问答-------------------- 我是来接分的 --------------------编程问答-------------------- ExecuteNonQuery 我不是来查询的
select * from member 请把我找出所有的member
不是矛盾了么~
英语单词要多积累~~
另外请不要把sql语句写在aspx.cs中(如果你只是想试试能不能用,还是可以的) 学学三层吧~~~
还在使用sql(可以学),奥特曼了~~~了解一下ORM 学学EntityFramework,开发速度up up up~
--------------------编程问答-------------------- --------------------编程问答--------------------
谁说ORM就不能出现SQL了,初学者不可能一上来就搞什么三层,EntityFramework是垃圾,速度慢。
初学SQL操作就应该老老实实从SqlCommand写起,不要用什么Helper,不要分层。等到SQL操作没有任何错误了,自己会查错的时候,就可以去接触ORM,离开基础的DataTable了。推荐使用Dapper,速度最快,使用最简单。不要太复杂的框架,只会把自己灌晕。 --------------------编程问答-------------------- 网上的MYSQL帮助类多数是垃圾,别用,没有自己封装的好。你的错误信息基本上是SQL语句里含有了不可见非法字符导致的,将所有空格删除,重新敲空格上去就能好。 --------------------编程问答--------------------
请看我的表达和你的表达~ 我没有带什么情感~
只是指明以后学习的方向
我也没有说一定要用3层啊~ (如果你只是想试试能不能用,还是可以的)
刚刚看了一下Dapper, 迷上linq后我不怎么喜欢写sql了~~~
好吧~ 再整理一下我的个人观点~
1.你现在就按你那样去写,然后看看有有些经常重复,或复制
那么你就把他提取出来,试试把他封装(面向对象的3个特性之一)
应该可以整理出自己的MySqlHelper
然后写sql觉得没有智能提示,经常容易写错
又要经常用["Username"] 写得蛋疼~~ 这个时候试试EF(我还是推荐EF 呵呵)
然后就分层~~~
补充:.NET技术 , C#