c# - 使用存储过程将数据库中的 MySql 数据加载到 WPF 中的 TextBox 中
问题描述
谢谢阅读
我想使用 MySQL 中的存储过程将 MySql 数据库中的数据显示到 WPF 文本框中,我想在按键事件的文本框中显示信息,“vbid”是 MySQL 中的存储过程,如下所示,我在问这个因为存储过程中的列数很长,这只是我临时解决的一个示例,我知道有一种方法可以在 c# 中使用 SQL 命令并使用它们的索引号示例引用每个:
MySqlCommand cmd = new MySqlCommand("Select Name , Age etc... From exampletable where ID=@ID", con);
cmd.Parameters.AddWithValue("_Mem_no", memno.Text.Trim());
MySqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
textbox1.Text = dr.GetValue(0).ToString();
textbox1.Text = dr.GetValue(1).ToString();
........
}
但我想要一种利用存储过程的方法,有什么办法可以做到这一点,请帮忙,谢谢!
这些是我尝试实现的两种方法:
private void memno_KeyUp(object sender, KeyEventArgs e)
{
using (MySqlConnection con = new MySqlConnection(connetionstring))
{
con.Open();
if (memno.Text != "")
{
MySqlCommand cmd = new MySqlCommand("vbid", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("_Mem_no", memno.Text.Trim());
MySqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
// this is the only different part so I am writing this in different code fence
so that the question isn't too long, I will name them method 1 and method 2
as their title
}
con.Close();
}
}
}
Method 1 : memnm.Text = Request.QueryString["Mem_Name"];
fsn.Text = Request.QueryString["Father_Name"];
age.Text = Request.QueryString["Age"];
gndr.Text = Request.QueryString["Gender"];
dob.Text = Request.QueryString["Date_of_Birth"];
unm.Text = Request.QueryString["Union_name"];
Method 2 : memnm.Text = dr["Mem_Name"].ToString();
fsn.Text = dr["Father_Name"].ToString();
age.Text = dr["Age"].ToString();
gndr.Text = dr["Gender"].ToString();
dob.Text = dr["Date_of_Birth"].ToString();
unm.Text = dr["Union_name"].ToString();
这是 MySql 中名为“vbid”的示例存储过程
CREATE DEFINER=`root`@`localhost` PROCEDURE `vbid`()
BEGIN
SELECT
Mem_no,
Mem_Name,
Father_Name,
Age,
Gender,
Date_of_Birth,
Union_name
FROM mi
WHERE ID = _ID;
END
再次感谢你!!!
解决方案
没关系,我想通了,但是谢谢你甚至帮助我这是我正在寻找的
private void memno_KeyUp(object sender, KeyEventArgs e)
{
using (MySqlConnection con = new MySqlConnection(connetionstring))
{
con.Open();
if (memno.Text != "")
{
MySqlCommand cmd = new MySqlCommand("SELECT * FROM ch.mi WHERE Mem_no =" +
int.Parse(memno.Text.Trim()), con);
MySqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
memnm.Text = dr.GetString("Mem_Name"); <--- this was the command I
fsn.Text = dr.GetString("Father_Name"); was searching for
age.Text = dr.GetInt32("Age").ToString(); *(pheww sigh of relief)
gndr.Text = dr.GetString("Gender");
dob.Text = dr.GetString("Date_of_Birth");
unm.Text = dr.GetString("Union_name");
}
else
{
clear(); <--- this is a declared clear function
MessageBox.Show("Data Not Available");
}
con.Close();
}
}
}
现在令人恼火的是我有一个新问题,这个命令不能接受空值我真的很讨厌这个一个又一个问题,但真的感谢这个社区
推荐阅读
- swift - swift ui 导航栏后退按钮仅被隐藏它正在占用空间和多个后退按钮占用空间询问我导航到其他页面
- javascript - 如果页面上存在链接,则在单击时添加类,javascript
- php - 用php从csv快速更新大量数据mysql
- package - HOMEBREW - 在没有 github 的情况下在本地创建一个包
- java - DataStream Flink中从JDBC源读取数据的问题
- html - 在 Angular 中将条件渲染逻辑放在哪里?
- javascript - 如何将数字数组字符串转换为数字数组?(JS)
- powershell - HTML 表格转 CSV
- reactjs - useContext 触发重新渲染而不进行更改
- python - SQLAlchemy:对 ForeignKeyConstraint 强制执行软删除