从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)代码>