抱歉,如果要发送一则长信息,请多多关照。非常感谢您提供给我的帮助
* enter image description here我已经大胆了代码中的问题
我一直在尝试使事件工作最长时间,在该事件中,当您按Enter/Return键时,数据库会进行输入,但是某些或其他内容出了问题
我发布了整个代码,因为虽然时间不长,但我无法指出问题所在
所以每当我将eneter键事件添加到key up事件时,它都会检查是否按下了key输入,否则会引发异常
[MySql.Data.MySqlClient.MySqlException:'第1行的'_Age'列的整数值不正确”
如果我删除回车键检查器代码,它可以很好地工作,但问题是在我键入每个数字时数据加载完毕
例如,如果我想输入56,它将加载5的数据,然后当我输入6时,它将接受输入,我想在按Enter时加载它,但主要瓶颈是我还没有另一个错误弄清楚了getstring函数不能接受空值的地方,一旦完成,我就无法弄清楚该怎么做,我可以继续前进,例如,如果我输入5且其中一个字段具有空值,它就会中断并发生错误工作
第1部分:代码的普通部分

using Microsoft.Win32;
using MySql.Data.MySqlClient;
using System.CodeDom;
using System.Data;
using System.IO;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;


 namespace CH03
{
/// <summary>
/// Interaction logic for Dashboard.xaml
/// </summary>
///


public partial class Dashboard : UserControl
{

    string connetionstring = @"Server=localhost;Database=ch;Uid=root;Pwd=1234;";
    int ID = 0;

    public Dashboard()
    {
        InitializeComponent();

        DataContext = this;
        string imgavatar = $"
第2部分:这部分会导致问题
    private void btnupdate_Click(object sender, RoutedEventArgs e)
    {

            using (MySqlConnection con = new MySqlConnection(connetionstring))
            {
                con.Open();
                MySqlCommand cmd = new MySqlCommand("Dashboard", con);
                cmd.CommandType = CommandType.StoredProcedure;

                cmd.Parameters.AddWithValue("_ID", ID);
                cmd.Parameters.AddWithValue("_Mem_no", memno.Text.Trim());
                cmd.Parameters.AddWithValue("_Mem_Name", memnm.Text.Trim());
                cmd.Parameters.AddWithValue("_Father_Name", fsn.Text.Trim());
                cmd.Parameters.AddWithValue("_Age", age.Text.Trim());
                cmd.Parameters.AddWithValue("_Gender", gndr.Text.Trim());
                cmd.Parameters.AddWithValue("_Date_of_Birth", dob.Text.Trim());
                cmd.Parameters.AddWithValue("_Union_name", unm.Text.Trim());
                cmd.Parameters.AddWithValue("_Photo_path", @"E:\new databse
                                              project\chitrapuri\images\" + memno.Text + ".jpg");



                cmd.ExecuteNonQuery();  **<----- THIS IS WHAT THROWS THE EXCEPTION**


                MessageBox.Show("success");
                clear();
                btnupdate.Content = "Update";
                Add_New_Member.Visibility = Visibility.Visible;
                con.Close();
              }
          }
第3部分:这是面对问题的部分
     private void memno_KeyUp(object sender, KeyEventArgs e)
        {


            using (MySqlConnection con = new MySqlConnection(connetionstring))
            {
                con.Open();
                if (memno.Text != "")
                {

              if (e.Key == Key.Return)  **<---- IF I ADD THIS ONLY THEN DOES IT THROW THE EXCEPTION**

                  {
                    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");
                        fsn.Text = dr.GetString("Father_Name");
                        age.Text = dr.GetInt32("Age").ToString();
                        gndr.Text = dr.GetString("Gender");
                        dob.Text = dr.GetString("Date_of_Birth");
                        unm.Text = dr.GetString("Union_name");

                    }
                    else
                    {
                        clear();
                        MessageBox.Show("Data Not Available");

                    }

                    con.Close();
                  }


                }

        }

    }
MySql代码虽然不重要
PROCEDURE `Dashboard`(_ID int,
_Mem_no int,
_Mem_Name varchar(255),
_Father_Name varchar(255),
_Age int,
_Gender varchar(255),
_Date_of_Birth varchar(255),
_Union_name varchar(255)

 )
BEGIN
IF _ID = 0 THEN
    INSERT INTO mi (ID,
Mem_no,
Mem_Name,
Father_Name,
Age,
Gender,
Date_of_Birth,
Union_name
)

   VALUES (_ID,
_Mem_no,
_Mem_Name,
_Father_Name,
_Age,
_Gender,
_Date_of_Birth,
_Union_name
);
ELSE
 UPDATE mi
    SET

        Mem_no = _Mem_no,
        Mem_Name = _Mem_Name,
        Father_Name =_Father_Name,
        Age = _Age,
        Gender = _Gender,
        Date_of_Birth = _Date_of_Birth,
        Union_name = _Union_name


        WHERE ID = _ID;
        END IF;


        END

最佳答案

您可以使用字符代码在KeyPress事件上扫描回车键。

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == '\r')
    {
        // Do something here
    }
}
此时,文本框值将不包含返回字符。

10-05 20:59
查看更多