Reputation: 1
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();
}
}
Upvotes: 0
Views: 253
Reputation: 98740
You don't need to use ExecuteNonQuery
for a SELECT
statement. This method just executes your query, it doesn't return any data or something.
Looks like your queries returns one row with one column, you can use ExecuteScalar
method instead.
But more important, you should always use parameterized queries. This kind of string concatenations are open for SQL Injection attacks.
Also use using
statement to dispose your connection and command automatically instead of calling Close
method manually.
By the way, you can combine all OleDbCommand
objects into one since you query the same table for different columns.
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);
}
}
}
Upvotes: 2