c# mysql insert_VS2019 C# 连接mysql,添加数据(Insert)
https://blog.csdn.net/weixin_35698069/article/details/113377622
1.在项目目录下添加MySql.Data.dll
首先找到MySql.Data.dll,我的路径为:C:\Program Files (x86)\MySQL\Connector NET 8.0\Assemblies\v4.5.2
复制到项目目录下:
在代码中引用命名空间:
using MySql.Data.MySqlClient;
做完之后,在编译时可能会报错:未能找到类型或命名空间名称xxx。
明明添加引用了,为什么不行呢?因为版本号的问题!
2.版本号
注意MySql.Data.dll的版本号,和.NET framework的版本号(VS里面有很多,可调)要一致。
右击项目名称(exp6)->属性->应用程序:
3.代码
string connStr = string.Format("user=root;pwd=123456;server=127.0.0.1;database=db1;");
MySqlConnection conn = new MySqlConnection(connStr);
conn.Open();
string data_in = "insert into 表明(列表名1,列表名2) values('" + "1" + "','" + "2" + "','";
data_in += "')";
MySqlCommand cmd = new MySqlCommand(data_in, conn);
cmd.ExecuteNonQuery();
conn.Close();
如果用户名,密码,数据库名,表名都正确的话,就可以连接上。
如果句子的语法出错,就会报错: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 ‘XXXX’ at line X。
添加语句的语法:写给我自己看的,一度十分困惑
众所周知,在mysql中,字符串需要加单引号;而在C#中,字符串需要加双引号。
比如列表名1为user,varchar(10)类型,列表名2为pwd,varchar(10)类型。
向其中插入数据user=123,pwd=456,
正常的sql语句:
insert into table_name(user,pwd) values('123','456');
而在C#中,这句话本身是一个字符串,所以在这个语句的基础上,该加双引号的地方就要加双引号。
如果是常数数据,可以直接在整个sql语句上面加双引号,完事。
str = "insert into table_name(user,pwd) values('123','456');"
然而事情往往不会这么简单。
如果添加的数据是其他地方得来的,不是直接就能写进去的,比如 str1 = “123”,str2=“456”,添加语句为data_in;
data_in = "insert into table_name(user,pwd) values('"+str1+"','"+str2+"',)";
分步详细说明(我真是个小垃圾 ):
首先是前面的语句,一直到第一个单引号, insert into table_name(user,pwd) values(’
句子最后的单引号是sql语句的单引号,双引号是字符串的双引号!
data_in = "insert into table_name(user,pwd) values('"
然后加第一个数据,str1
data_in += str1;
其次是字符串1后面那个引号,逗号,以及字符串2之前的单引号,
data_in += "','";
接着是第2个数据,str2
data_in += str2;
最后是字符串2后面那个引号,和最后的括号。
data_in += "')";