如何将数据库查询数据添加到文本框中
本文关键字:文本 添加 数据 数据库 查询 | 更新日期: 2023-09-27 18:21:33
private void button1_Click(object sender, EventArgs e)
{
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
// modify the connection string and include any additional required properties for your database
conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" +
@"Data Source=C:'Users'Dastgeer'Documents'Visual Studio 2013'Projects'UrduStemmerProject'UrduStemmerProject'Resources'ProjectDatbase.mdb";
try
{
conn.Open();
System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(@"SELECT PreFix FROM UrduStemmerTbl WHERE (word = '"+InputWord+"')");
cmd.Connection = conn;
cmd.ExecuteNonQuery();
System.Data.OleDb.OleDbCommand cmd2 = new System.Data.OleDb.OleDbCommand(@"SELECT Stem FROM UrduStemmerTbl WHERE (word = '" + InputWord + "')");
cmd2.Connection = conn;
cmd.ExecuteNonQuery();
System.Data.OleDb.OleDbCommand cmd3 = new System.Data.OleDb.OleDbCommand(@"SELECT PostFix FROM UrduStemmerTbl WHERE (word = '" + InputWord + "')");
cmd3.Connection = conn;
cmd.ExecuteNonQuery();
//Text boxes names are
//prefixOutput.Text =;
//stemOutput.Text = ;
//postfixOutput.Text = ;
MessageBox.Show("Data Stemmed!");
}
catch (Exception ex)
{
MessageBox.Show("Failed to connect to data source");
}
finally
{
conn.Close();
}
}
SELECT
语句不需要使用ExecuteNonQuery
。这个方法只执行查询,不返回任何数据或其他内容。
看起来您的查询返回一行一列,您可以改用ExecuteScalar
方法。
但更重要的是,您应该始终使用参数化查询。这种字符串串联对SQL注入攻击是开放的。
也可以使用using
语句自动处理连接和命令,而不是手动调用Close
方法。
顺便说一下,您可以将所有OleDbCommand
对象合并为一个对象,因为您为不同的列查询同一个表。
using(var conn = new OleDbConnection(connString))
using(var cmd = conn.CreateCommand())
{
cmd.CommandText = @"SELECT PreFix, Stem, PostFix FROM UrduStemmerTbl WHERE word = ?";
cmd.Parameters.Add("?", OleDbType.VarWChar).Value = InputWord;
// I assume your column type
conn.Open();
using(var dr = cmd.ExecuteReader())
{
if(dr.Read())
{
prefixOutput.Text = dr.GetString(0);
stemOutput.Text = dr.GetString(1);
postfixOutput.Text = dr.GetString(2);
}
}
}