从c#应用程序到Ms Access的数据传输不正确

从c#应用程序到Ms Access的数据传输不正确,c#,ms-access,ado.net,C#,Ms Access,Ado.net,对不起,如果我不太懂的话,我对这件事相当陌生。当我在应用程序中保存用户名和密码等数据时,数据会作为我输入的内容插入,但会添加文本,例如:我会发送用户名“Mark”,但当我去查看数据库时,它会作为“System.Windows.Forms.TextBox,text:Mark”。如何将此更改为仅插入我输入的用户名?您需要使用textbox控件的Text属性来获取存储的实际文本:- ... using System.Data; using System.Data.OleDb; namespace a

对不起,如果我不太懂的话,我对这件事相当陌生。当我在应用程序中保存用户名和密码等数据时,数据会作为我输入的内容插入,但会添加文本,例如:我会发送用户名
“Mark”
,但当我去查看数据库时,它会作为
“System.Windows.Forms.TextBox,text:Mark”
。如何将此更改为仅插入我输入的用户名?

您需要使用textbox控件的
Text
属性来获取存储的实际文本:-

...
using System.Data;
using System.Data.OleDb;

namespace accessloginapp
{
    public partial class Ramen : Form
    {
        private OleDbConnection connection = new OleDbConnection();

        public Ramen()
        {
            InitializeComponent();
            connection.ConnectionString =
                @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\...\Users.accdb;Persist Security Info=False;";
        }

        private void btn_Save_Click(object sender, EventArgs e)
        {
            try{
                connection.Open();

                OleDbCommand command = new OleDbCommand();
                command.Connection = connection;
                command.CommandText =
                    "insert into userdata (Username,[Password]) values('" +
                    txt_Username + "','" + txt_Password + "')";

                command.ExecuteNonQuery();
                MessageBox.Show("Users added and saved");
                connection.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error" + ex);
            }
        }
    }
}
除此之外,请注意,您的查询是开放的

因此,您应该使用如下参数化查询:-

 command.CommandText = "insert into userdata (Username,[Password]) 
           values('" + txt_Username.Text + "','" + txt_Password.Text + "')";

同样地,为
@Password

添加参数,您需要使用textbox控件的
Text
属性来获取存储的实际文本:-

...
using System.Data;
using System.Data.OleDb;

namespace accessloginapp
{
    public partial class Ramen : Form
    {
        private OleDbConnection connection = new OleDbConnection();

        public Ramen()
        {
            InitializeComponent();
            connection.ConnectionString =
                @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\...\Users.accdb;Persist Security Info=False;";
        }

        private void btn_Save_Click(object sender, EventArgs e)
        {
            try{
                connection.Open();

                OleDbCommand command = new OleDbCommand();
                command.Connection = connection;
                command.CommandText =
                    "insert into userdata (Username,[Password]) values('" +
                    txt_Username + "','" + txt_Password + "')";

                command.ExecuteNonQuery();
                MessageBox.Show("Users added and saved");
                connection.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error" + ex);
            }
        }
    }
}
除此之外,请注意,您的查询是开放的

因此,您应该使用如下参数化查询:-

 command.CommandText = "insert into userdata (Username,[Password]) 
           values('" + txt_Username.Text + "','" + txt_Password.Text + "')";

同样地,为
@Password

添加参数,您需要使用textbox控件的
Text
属性来获取存储的实际文本:-

...
using System.Data;
using System.Data.OleDb;

namespace accessloginapp
{
    public partial class Ramen : Form
    {
        private OleDbConnection connection = new OleDbConnection();

        public Ramen()
        {
            InitializeComponent();
            connection.ConnectionString =
                @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\...\Users.accdb;Persist Security Info=False;";
        }

        private void btn_Save_Click(object sender, EventArgs e)
        {
            try{
                connection.Open();

                OleDbCommand command = new OleDbCommand();
                command.Connection = connection;
                command.CommandText =
                    "insert into userdata (Username,[Password]) values('" +
                    txt_Username + "','" + txt_Password + "')";

                command.ExecuteNonQuery();
                MessageBox.Show("Users added and saved");
                connection.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error" + ex);
            }
        }
    }
}
除此之外,请注意,您的查询是开放的

因此,您应该使用如下参数化查询:-

 command.CommandText = "insert into userdata (Username,[Password]) 
           values('" + txt_Username.Text + "','" + txt_Password.Text + "')";

同样地,为
@Password

添加参数,您需要使用textbox控件的
Text
属性来获取存储的实际文本:-

...
using System.Data;
using System.Data.OleDb;

namespace accessloginapp
{
    public partial class Ramen : Form
    {
        private OleDbConnection connection = new OleDbConnection();

        public Ramen()
        {
            InitializeComponent();
            connection.ConnectionString =
                @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\...\Users.accdb;Persist Security Info=False;";
        }

        private void btn_Save_Click(object sender, EventArgs e)
        {
            try{
                connection.Open();

                OleDbCommand command = new OleDbCommand();
                command.Connection = connection;
                command.CommandText =
                    "insert into userdata (Username,[Password]) values('" +
                    txt_Username + "','" + txt_Password + "')";

                command.ExecuteNonQuery();
                MessageBox.Show("Users added and saved");
                connection.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error" + ex);
            }
        }
    }
}
除此之外,请注意,您的查询是开放的

因此,您应该使用如下参数化查询:-

 command.CommandText = "insert into userdata (Username,[Password]) 
           values('" + txt_Username.Text + "','" + txt_Password.Text + "')";

同样地,为
@Password

添加参数,您将为每个对象(文本框)传递一个对象,而不是它们包含的文本。但这是你的最小问题。了解SQL参数和密码。您正在为每个参数(文本框)传递一个对象,而不是它们包含的文本。但这是你的最小问题。了解SQL参数和密码。您正在为每个参数(文本框)传递一个对象,而不是它们包含的文本。但这是你的最小问题。了解SQL参数和密码。您正在为每个参数(文本框)传递一个对象,而不是它们包含的文本。但这是你的最小问题。了解SQL参数和密码。谢谢,它成功了。我觉得忘记了很愚蠢。发短信。我是新手,我将研究如何防范SQL注入攻击。@Lanewill-不客气。如果对您有帮助,请接受它作为答案:)注意,对于OleDB,参数是位置:
插入userdata(用户名,[Password])值(?,)
。然后添加如下参数:
command.Parameters.AddWithValue(“?”,txt\u Username.Text);command.Parameters.AddWithValue(“?”,txt_Password.Text)谢谢,成功了。我觉得忘记了很愚蠢。发短信。我是新手,我将研究如何防范SQL注入攻击。@Lanewill-不客气。如果对您有帮助,请接受它作为答案:)注意,对于OleDB,参数是位置:
插入userdata(用户名,[Password])值(?,)
。然后添加如下参数:
command.Parameters.AddWithValue(“?”,txt\u Username.Text);command.Parameters.AddWithValue(“?”,txt_Password.Text)谢谢,成功了。我觉得忘记了很愚蠢。发短信。我是新手,我将研究如何防范SQL注入攻击。@Lanewill-不客气。如果对您有帮助,请接受它作为答案:)注意,对于OleDB,参数是位置:
插入userdata(用户名,[Password])值(?,)
。然后添加如下参数:
command.Parameters.AddWithValue(“?”,txt\u Username.Text);command.Parameters.AddWithValue(“?”,txt_Password.Text)谢谢,成功了。我觉得忘记了很愚蠢。发短信。我是新手,我将研究如何防范SQL注入攻击。@Lanewill-不客气。如果对您有帮助,请接受它作为答案:)注意,对于OleDB,参数是位置:
插入userdata(用户名,[Password])值(?,)
。然后添加如下参数:
command.Parameters.AddWithValue(“?”,txt\u Username.Text);command.Parameters.AddWithValue(“?”,txt_Password.Text)