我有一个C#应用程序(使用Visual Studio 2015 Professional构建),用于与Microsoft Access(2010)数据库(.mdb)进行交互。首先......我通常不是C#开发人员,所以请原谅无知。我想做的事情似乎很简单......但我无法弄清楚如何实现它。我希望创建一个搜索门户,它将接受用户输入,查询数据库,并返回与所需序列号匹配的记录。
我的第一个想法是在Visual Studio中创建一个查询并使用用户输入作为查询的过滤器,但我无法弄清楚如何设置它以查看值的inputTB。
我的第二个想法是在我的C#代码中嵌套一个SQL查询......但我不知道它们需要做什么样的语法或结构。
我所拥有的唯一代码是我想要使用的SQL查询,但它本质上是伪代码,我确信它存在空白。
SELECT ID, UnitType, UnitSN, StatusCode, Priority
FROM Units
WHERE UnitSN = inputTB;
修改
在StackOverflow社区的几个成员的帮助下,我拼凑了一些代码,但是我在datagrid中显示结果时遇到了麻烦。到目前为止生成的代码:
public void Main()
{
string unitSN = inputTB.Text;
string connectionString = Properties.Settings.Default.ZeusConnectionString;
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
connection.Open();
using (OleDbCommand command = new OleDbCommand("SELECT * FROM Units WHERE UnitSN LIKE @Name", connection))
{
command.Parameters.Add(new OleDbParameter("Name", unitSN));
OleDbDataReader reader = command.ExecuteReader();
while (reader.Read())
{
int ID = reader.GetInt32(0);
string Unit = reader.GetString(1);
string SerialNumber = reader.GetString(2);
//Console.WriteLine("ID = {0}, Unit = {1}, SerialNumber = {2}", ID, Unit, SerialNumber);
MessageBox.Show(SerialNumber);
}
}
}
}
请随意对代码进行任何编辑,因为我意识到它是一团糟,我只是对C#语言的粗略了解。
答案 0 :(得分:0)
你可以尝试这样的事情。
public DataTable Test(string connectionString)
{
DataTable table = null;
try
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand cmd = connection.CreateCommand();
cmd.CommandText = @"SELECT ID, UnitType, UnitSN, StatusCode, Priority
FROM Units
WHERE UnitSN = @inputTB;";
cmd.Parameters.Add(new SqlParameter(@"inputTB", inputTB.Text));
using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
{
table = new DataTable();
adapter.Fill(table);
}
}
}
catch(Exception ex)
{
//handle the caught exception
}
return table;
}
希望它对你有所帮助。