c# - 无法将 Visual Studio 2019 与 MySQL 数据库连接并将文本框中的用户输入插入所述数据库(已解决)
问题描述
我正在使用 Visual Studio 2019 和 MySQL 工作台,我专门为该程序创建了一个数据库,还创建了一个用于收集用户信息的表。我想要做的是让用户在文本框中输入数据,然后当他们按下按钮时,需要将信息上传到相应标题中的表格中。我在尝试调试与“ispasswordexpired”相关的 System.Nullreference 异常和有关服务器线程的代码时遇到了问题。我尝试解决这些问题,但似乎我刚刚进一步打破了它。这是代码:
using MySql.Data.MySqlClient;
using MySqlX.XDevAPI;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Tidal_Waves_Information
{
public partial class Form2 : Form
{
public string ConnectionString { get; private set; }
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form1 Start_Page = new Form1();
Start_Page.Show();
}
private void button2_Click(object sender, EventArgs e)
{
try
{
using (MySqlConnection connection = new MySqlConnection(connectionString: "Server=localhost;port=3306;Database=tidal_waves_db;Uid=root;Pwd=*********"))
{
string Query = "INSERT INTO user_details_table (Username, First_Name, Surname, Password, Email, Mobile_Phone) VALUES (@Username, @First_Name, @Surname, @Password, @Email, @Mobile_Phone)";
MySqlCommand cmd = new MySqlCommand(Query);
cmd.CommandType = CommandType.Text;
cmd.Connection = connection;
cmd.Parameters.AddWithValue("@Username", textBox1.Text);
cmd.Parameters.AddWithValue("@First_Name", textBox5.Text);
cmd.Parameters.AddWithValue("@Surname", textBox6.Text);
cmd.Parameters.AddWithValue("@Password", textBox2.Text);
cmd.Parameters.AddWithValue("@Email", textBox3.Text);
cmd.Parameters.AddWithValue("@Mobile_Phone", textBox4.Text);
connection.Open();
MySqlDataReader MyReader;
MyReader = cmd.ExecuteReader();
MessageBox.Show("Save Data");
while (MyReader.Read())
{
}
connection.Close();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
我试过谷歌搜索如何做到这一点,并尝试查看堆栈溢出。(也许我只是搜索错误)但是在多个网站和尝试集成代码之后,它却无济于事。你们可以提供的任何帮助将不胜感激
找到了解决这个问题的方法。
MySqlConnection cnn;
string connectionString = "server=localhost;database=tidal_waves_db;uid=root;pwd=*******";
cnn = new MySqlConnection(connectionString);
try
{
cnn.Open();
MessageBox.Show("Connecting to database");
MySqlCommand cmd = cnn.CreateCommand();
cmd.CommandText = "INSERT INTO user_details_table (Username, Password, First_Name, Surname, Email, Mobile_Phone, Address) VALUES (@Username, @Password, @First_Name, @Surname, @Email, @Mobile_Phone, @Address)";
cmd.Parameters.AddWithValue("@Username", textBox1.Text);
cmd.Parameters.AddWithValue("@Password", textBox2.Text);
cmd.Parameters.AddWithValue("@First_Name", textBox3.Text);
cmd.Parameters.AddWithValue("@Surname", textBox4.Text);
cmd.Parameters.AddWithValue("@Email", textBox5.Text);
cmd.Parameters.AddWithValue("@Mobile_Phone", textBox6.Text);
cmd.Parameters.AddWithValue("@Address", listBox1.SelectedIndex);
cmd.ExecuteNonQuery();
cnn.Close();
MessageBox.Show("Upload Successful");
}
catch (Exception)
{
MessageBox.Show("An error occurred");
}
解决方案
推荐阅读
- python - 在python中向JSON结构添加/附加键
- javascript - React,功能组件使用定义之前使用的变量,循环依赖
- nim-lang - 如何从 Nim 的异常中获取堆栈跟踪?
- vert.x - 一旦控制权传递给blockingHandler,vertx.eventloop线程会发生什么?
- java - 415 Unsupported Media Exception 即使在为 SOAP 1.2 调用设置 application/soap+xml 之后
- pulp - 纸浆:为 LpVariable.dicts() 添加边界
- reactjs - React:不使用钩子的基于类的组件中的无效钩子
- odbc - netcore ODBC 连接到 centos 上的 informix 数据库
- python - 如何在具有多个页面的 tkinter 应用程序中获取按钮单击的条目值?
- spring-boot - @SpringBootTest 类在同一个线程中运行,尽管是同时配置的