我创造了当您添加音乐文件的应用程序与“浏览” 但我的问题是,我希望它与数据库连接播放音乐的应用程序。连接C#与数据库
我创建了信息的数据库中它:GeluidsfragmentDBSreal
现在我想用一个列表框来显示在数据库 我使用的捕捉和尝试的方法,但我的“尝试”的信息是不工作,它直接进入我的“捕捉”
我要显示在列表框中我的数据库信息。
我的数据库类
private OleDbConnection connection;
public DataKoppeling()
{
String pad;
String provider;
String applicatiePad;
String connectionString;
provider = "Provider=Microsoft.ACE.OLEDB.12.0";
applicatiePad = Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf("\\"));
pad = "Data Source=" + applicatiePad + "/GeluidsfragmentDBSreal.accdb";
connectionString = provider + ";" + pad;
connection = new OleDbConnection(connectionString);
}
public List<Geluidsfragment> GetAlleFragmenten()
{
String sql = "SELECT * FROM Geluidsfragment";
OleDbCommand command = new OleDbCommand(sql, connection);
List<Geluidsfragment> fragmenten;
fragmenten = new List<Geluidsfragment>();
try
{
connection.Open();
OleDbDataReader reader = command.ExecuteReader();
int nr;
string bestandsnaam;
string titel;
int min;
int sec;
while (reader.Read())
{
nr = Convert.ToInt32(reader["nr"]);
bestandsnaam = Convert.ToString(reader["Bestandsnaam"]);
titel = Convert.ToString(reader["titel"]);
min = Convert.ToInt32(reader["min"]);
sec = Convert.ToInt32(reader["sec"]);
fragmenten.Add(new Geluidsfragment(nr, bestandsnaam, titel, min, sec));
}
}
catch
{
MessageBox.Show("foutje");
}
finally
{
connection.Close();
}
return fragmenten;
}
public void VoegToe( int nr, string bestandsnaam , string titel ,int min ,int sec)
{
String sql = "INSERT INTO Geluidsfragment VALUES (" + nr + ",'" + bestandsnaam + "'" + "," + titel + "," + min + "," + sec + ")";
OleDbCommand command = new OleDbCommand(sql, connection);
try
{
connection.Open();
command.ExecuteNonQuery();
}
catch
{
}
finally
{
connection.Close();
}
}
public int AantalStudenten()
{
String sql = "SELECT COUNT(*) FROM Geluidsfragment";
OleDbCommand command = new OleDbCommand(sql, connection);
int aantal = 0;
try
{
connection.Open();
aantal = Convert.ToInt32(command.ExecuteScalar());
}
catch
{
}
finally
{
connection.Close();
}
return aantal;
}
}
}
Geluidsfragment类
Public class Geluidsfragment
private int nr;
private String titel;
private int tijdsduur; //tijdsduur in seconden
private String bestandsnaam;
public Geluidsfragment(int nr, String bestandsnaam, String titel, int min, int sec)
{
this.nr = nr;
this.bestandsnaam = bestandsnaam;
this.titel = titel;
this.tijdsduur = (min*60) + sec;
}
public Geluidsfragment(int nr, String bestandsnaam, String titel, int tijdsduur)
{
this.nr = nr;
this.bestandsnaam = bestandsnaam;
this.titel = "onbekend";
this.tijdsduur = 0;
}
/******** properties ********************************************************/
public int Nr
{
//private get;
get { return this.nr;}
}
public String Titel
{
get {return this.titel;}
set { this.titel = value ;}
}
public int Tijdsduur
{
get
{
return this.tijdsduur ;
}
set
{
if (this.tijdsduur <= 0)
{
this.tijdsduur = 0;
}
else
this.tijdsduur = value;
}
}
public string TijdsduurString
{
get
{
int minuten = (tijdsduur/60);
int seconden = (tijdsduur % 60);
return String.Format("{0:00} : {1:00} ", minuten , seconden);
}
}
public string Bestandsnaam
{
get { return this.bestandsnaam; }
set { this.bestandsnaam = value; }
}
public String toonInfo()
{
return nr.ToString() + " - " + titel + " - " + tijdsduur.ToString() + " - " + bestandsnaam;
}
public String AlsString()
{
return String.Format("Nr {0}: {1} - {2:0.00} ", nr, titel,TijdsduurString);
}
public bool Play()
{
try
{
System.Media.SoundPlayer myPlayer = new System.Media.SoundPlayer();
myPlayer.SoundLocation = bestandsnaam;
myPlayer.Play();
return true;
}
catch
{
return false;
}
}
}
}
BG经验类
{
public List<Geluidsfragment> fragmenten;
private String thema;
public BGExperience(String thema)
{
fragmenten = new List<Geluidsfragment>();
this.thema = thema;
}
public String Thema
{
get { return Thema; }
}
public Geluidsfragment GetFragment(int nr)
{
foreach (Geluidsfragment fragment in fragmenten)
{
if (fragment.Nr == nr)
{
return fragment;
}
}
return null;
}
public List<Geluidsfragment> GetAlleFragmenten()
{
return fragmenten;
}
public List<Geluidsfragment> GetFragment(String p)
{
List<Geluidsfragment> resultaten = new List<Geluidsfragment>();
foreach (Geluidsfragment fragment in fragmenten)
{
if (fragment.Titel.IndexOf(p) != -1)
{
resultaten.Add(fragment);
}
}
return resultaten;
}
public bool AddFragment(int nr, String bestandsnaam, String titel, int min, int sec)
{
foreach (Geluidsfragment fragment in fragmenten)
{
if (fragment.Nr == nr)
{
MessageBox.Show("Het nummer is al in gebruik");
return false;
}
}
if (min <= 0)
if (sec <= 0)
{
MessageBox.Show("Beide getallen mogen niet 0 zijn");
return false;
}
else
if (sec <= 0)
if (min <= 0)
{
MessageBox.Show("Beide getallen mogen niet 0 zijn");
return false;
}
else if (min <= 00)
if (sec <= 00)
{
MessageBox.Show("Beide getallen mogen niet 0 zijn");
return false;
}
else
if (sec <= 00)
{
if (min <= 00)
{
MessageBox.Show("Beide getallen mogen niet 0 zijn");
return false;
}
}
if (sec > 60)
{
MessageBox.Show("Seconden mag max 60 zijn");
return false;
}
fragmenten.Add(new Geluidsfragment(nr, bestandsnaam, titel, min, sec));
return true;
}
}
}
想要在数据库中我的表格按钮形成(NR,影片名称,分钟,秒,bestandsnaam) {
private void Database_Click(object sender, EventArgs e)
List muziek; muziek = dk.GetAlleFragmenten();
listBox1.Items.Clear();
foreach (Geluidsfragment fragment in muziek)
{
listBox1.Items.Add(fragment.AlsString());
}
}
使用' OleDbConnectionStringBuilder'。 – SLaks
停止只是丢弃例外,看看什么样的信息已经告诉你为什么它被抛出。你不应该有一个'catch {MessageBox(胡说);}'块;只是吃了异常信息。 –
当你进入捕获时抛出的错误是什么?张贴在这里。此外,它看起来像你有SQL注入漏洞。使用参数。 – paqogomez