我正在使用C#开发一个程序。我在phpMyAdmin上用MySQL创建了一个数据库,我希望将这个数据库与我的程序连接起来。 连接后,我必须插入,更新,删除和查看所有数据,但我有一个问题:连接不起作用。
我在这里发布我的连接代码:
public static string StringaConnessione = "Data Source=localhost;Database=agility;userid=root;password='';";
public static MySqlConnection Connessione = new MySqlConnection(StringaConnessione);
当我为插入按钮编写代码时,我有另一个问题(肯定是数据库)
Connessione.Open();
SQLDataAdapter SDA=new SqlDataAdapter("INSERT INTO GARA(nome_gara,giudice,località,data,tpsopm,tpmopm,tpstot,tpmtot)VALUES('"+textBox1.Text+"','"+textBox2.Text+"','"+textBox3.Text+"','"+textBox4.Text+"','"+textBox5.Text+"','"+textBox6.Text+"','"+textBox7.Text+"','"+textBox8.Text+"')",Connessione);
SDA.SelectCommand.ExecuteNonQuery();
Connessione.Close();
MessageBox.Show("Dati salvati correttamente!");
你能帮助我吗?谢谢!
答案 0 :(得分:4)
您不能使用SqlDataAdapter
与MySQL
对话,因为该类是专为与Sql Server一起使用而设计的。
改为使用MySqlDataAdapter
。
答案 1 :(得分:1)
您的代码存在很多问题:
1)您正在使用静态连接,有连接池,它是您的朋友。
2)您没有在使用block或try / catch / finally / block中使用连接 确保在异常时关闭连接。
3)阻止程序问题:您正在使用SqlDataAdapter而不是MySqlDataAdapter
4)阻止程序问题您应该在InsertCommand
的{{1}}中定义插入查询,它不适用于DataAdapter
。更好的方法是在其上使用SelectCommand
和MySqlCommand
。
5)您没有受到Sql Injection(使用MySqlCommand.Parameters)保护
6)变量,文本框和数据库字段格式不正确。
您的代码如何以最佳状态显示:
ExecuteNonQuery
答案 2 :(得分:0)
我认为你应该丢弃所有代码。 并找到一个有效的开始
例如这个 http://roboardgod.blogspot.hk/2013/08/cmysql.html
您可能需要手动添加引用MySql.Data.MySqlClient。查看此帖子以添加参考 How do I add a reference to the MySQL connector for .NET?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySql.Data.MySqlClient;
namespace MySQLtest
{
class Program
{
static void Main(string[] args)
{ string dbHost = "";//db address, for example localhost
string dbUser = "";//dbusername
string dbPass = "";//dbpassword
string dbName = "";//db name
string connStr = "server=" + dbHost + ";uid=" + dbUser + ";pwd=" + dbPass + ";database=" + dbName;
MySqlConnection conn = new MySqlConnection(connStr);
MySqlCommand command = conn.CreateCommand();
conn.Open();
String cmdText = "SELECT * FROM member WHERE level < 50";
MySqlCommand cmd = new MySqlCommand(cmdText, conn);
MySqlDataReader reader = cmd.ExecuteReader(); //execure the reader
while (reader.Read())
{
for (int i = 0; i < 4; i++)
{
String s = reader.GetString(i);
Console.Write(s + "\t");
}
Console.Write("\n");
}
Console.ReadLine();
conn.Close();
}
}
}