【发布时间】:2013-11-09 20:16:50
【问题描述】:
好的,我在 Visual Studio 的 C# (2012) 和 Access 之间创建了一个连接。这意味着,我已经完成了手动方式(没有代码)。但是这种方法并不能帮我做我想做的事,所以我把编码的方式也做了。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;
using System.Configuration;
using System.Xml.Serialization;
namespace WindowsFormsApplication1
{
public partial class horaireForm : Form
{
DateTime semSess;
int numSemaine;
int jourSem;
int periode;
string theoOuLabo;
string lesCours;
string cours;
string lesProfs;
string unprof;
string lesLocaux;
string lesGroupes;
string laComm;
string conn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\Stanley\\Desktop\\stuff\\Hiver 2013\\Horaires_EcranA2013.accdb";
(对不起,如果它很长)。无论如何,在此之后,我在这里有这个代码,它从组合框中获取信息(每个案例都是大学学期的几周的日期)。由于显然如果主键是组合框中的值,我无法选择主键,因此我决定使用日期作为组合框中的选择值,然后使用它来选择数据库中的实际主键。
semSess = Convert.ToDateTime(comboSemSess.Text);
OleDbConnection laConn = new OleDbConnection(conn);
try
{
laConn.Open();
laComm = "SELECT NumeroSemaine FROM SemainDelaSession WHERE DebutSemaine = " + semSess;
OleDbCommand myAccessCommand = new OleDbCommand(laComm, laConn);
OleDbDataReader reader = myAccessCommand.ExecuteReader();
while (reader.Read())
{
numSemaine = Convert.ToInt32(reader["NumeroSemaine"]);
}
}
catch
{
MessageBox.Show("Une erreur s'est produite en accédant à la base de données");
}
finally
{
laConn.Close();
}
但是,我仍然无法连接。它仍然得到消息框。这是否与我之前完成另一个连接的事实有关,或者我输入connectionString的方式,因为我不知道。
【问题讨论】:
-
为什么不捕捉异常,看看它在说什么? catch(Exception ex){MessageBox.Show(ex.ToString())} 你就会知道哪里出了问题。
-
感谢您的回答。我完全忘记了你可以做到这一点。无论如何,我尝试这样做......当我尝试将“semSess”分配给“DebutSemaine”时出现语法错误。说类似“DebutSemaine = 2013-02-25 00:00:00”。
标签: c# ms-access combobox connection ms-access-2010