我有一个链接到数据库的窗体,并且控制窗体的按钮不起作用,我没有收到任何错误,只是没有发生任何事情。为什么我的按钮不能在c#应用程序中工作
DisplayRow类
private void DisplayRow(int rowIndex)
{
// Check that we can retrieve the given row
if (myDataTable.Rows.Count == 0)
return; // nothing to display
if (rowIndex >= myDataTable.Rows.Count)
return; // the index is out of range
// If we get this far then we can retrieve the data
try
{
DataRow row = myDataTable.Rows[rowIndex];
textBox1.Text = row["FilePath"].ToString();
textBox2.Text = row["Subject"].ToString();
textBox3.Text = row["Title"].ToString();
textBox4.Text = row["Keywords"].ToString();
textBox5.Text = row["MediaType"].ToString();
}
catch (Exception ex)
{
MessageBox.Show("Error in DisplayRow : \r\n" + ex.Message);
}
}
应,当我运行的应用程序没有任何反应移动到下一个记录
private void button1_Click(object sender, EventArgs e)
{
if (currentRecord < myDataTable.Rows.Count -1)
{
currentRecord++;
DisplayRow(currentRecord);
}
,但就像我说的,没有错误只是没有按钮。
编辑:问编码MyDataTable
private void Form1_Load(object sender, EventArgs e)
{
{
String command = "SELECT * FROM Media";
try
{
myConnection = new OleDbConnection(access7ConnectionString);
myAdapter = new OleDbDataAdapter(access7ConnectionString, myConnection);
myCommandBuilder = new OleDbCommandBuilder(myAdapter);
myDataTable = new DataTable();
FillDataTable(command);
DisplayRow(currentRecord);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
完整的代码是什么我运行..
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace MediaPlayer
{
public partial class Media : Form
{
// Use this connection string if your database has the extension .accdb
private const String access7ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\MediaDatabase.accdb";
// Use this connection string if your database has the extension .mdb
private const String access2003ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\MediaDatabase.mdb";
// Data components
private DataTable myDataTable;
// Index of the current record
private int currentRecord = 0;
private void FillDataTable(string selectCommand)
{
currentRecord = 0;
OleDbConnection myConnection = new OleDbConnection(access7ConnectionString);
OleDbDataAdapter myAdapter = new OleDbDataAdapter(selectCommand, myConnection);
myDataTable = new DataTable();
try
{
myConnection.Open();
myAdapter.SelectCommand.CommandText = selectCommand;
myAdapter.Fill(myDataTable);
myConnection.Close();
}
catch (Exception ex)
{
MessageBox.Show("Error in FillDataTable : \r\n" + ex.Message);
}
DisplayRow(currentRecord);
}
private void DisplayRow(int rowIndex)
{
// Check that we can retrieve the given row
if (myDataTable.Rows.Count == 0)
return; // nothing to display
if (rowIndex >= myDataTable.Rows.Count)
//resets the index to 0 when you get past the last record
rowIndex = 0;
//if rowIndex is less then 0 set it to the last row
if (rowIndex < 0)
rowIndex = myDataTable.Rows.Count - 1;
// If we get this far then we can retrieve the data
try
{
DataRow row = myDataTable.Rows[rowIndex];
textBox1.Text = row["FilePath"].ToString();
textBox2.Text = row["Subject"].ToString();
textBox3.Text = row["Title"].ToString();
textBox4.Text = row["Keywords"].ToString();
textBox5.Text = row["MediaType"].ToString();
}
catch (Exception ex)
{
MessageBox.Show("Error in DisplayRow : \r\n" + ex.Message);
}
}
public Media()
{
InitializeComponent();
string command = "SELECT * FROM Media";
//the try catch is in the FillDataTable method
FillDataTable(command);
}
private void label2_Click(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
//assuming this cycles through the data
currentRecord++;
DisplayRow(currentRecord);
}
private void button6_Click(object sender, EventArgs e)
{
//assuming this resets the data
currentRecord = 0;
this.DisplayRow(currentRecord);
}
private void button1_Click(object sender, EventArgs e)
{
//assuming this cycles through the data
currentRecord++;
DisplayRow(currentRecord);
}
}
}
是的button1_Click实际上是被开除了? – MartW
你是否尝试过放置断点?也许如果评估为错误? – V4Vendetta
你在某处放了些断点吗? –