![](/img/trans.png)
[英]How can I bulk insert to MS-Access table using C# from gridview control?
[英]how do I insert into a textBox a value from MS-Access in visual studio c# using OleDb?
我正在尝试从Access获取值并将其放在字符串变量或文本框中,我正在使用MS-Visual Studio 2012和Access 2007
string sql = "SELECT [Time Checked-In] FROM HotelCustomers WHERE [Room Number] =" + textBox1.Text + ";";
string my_Connection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= c:\\Users\\Acer\\Documents\\HotelCustomersOld.mdb";
OleDbConnection myCon = new OleDbConnection(my_Connection);
myCon.Open();
DataTable dataTable = new DataTable();
OleDbDataAdapter adapter = new OleDbDataAdapter(sql, my_Connection);
adapter.Fill(dataTable);
string aString = dataTable.Rows[0]["Time Checked-In"].ToString();
textBox1.Text = aString;
您的问题可能是由于在HotelCustomers表中使用的名称。 OleDb可能会将其更改为合法的使用方式。
您可以重新编写SQL以使用对OleDb更友好的内容:
string sql = "SELECT [Time Checked-In] AS CheckIN FROM HotelCustomers WHERE [Room Number] =" + textBox1.Text + ";";
就是说,对于此简单查询,您不需要OleDbDataAdapter
或DataTable
的开销。
private const string CONN_STR = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= c:\\Users\\Acer\\Documents\\HotelCustomersOld.mdb";
private string GetCheckInTime(string roomNumber) {
string sql = "SELECT [Time Checked-In] AS CheckIN FROM HotelCustomers WHERE [Room Number] =" + roomNumber + ";";
object obj = null;
using (var cmd = new OleDbCommand(sql, new OleDbConnection(CONN_STR))) {
cmd.Connection.Open();
obj = cmd.ExecuteScalar();
cmd.Connection.Close();
}
if ((obj != null) && (obj != DBNull.Value)) {
return obj.ToString();
}
return null;
}
连接字符串永远不会改变,因此我将其设为常量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.