C#: Kann nicht Auffüllen DataGridView-Eigenschaft programmgesteuert
Eher als designer verwenden, ich versuche, füllen Sie ein DataGridView habe ich auf meine Winform-programmgesteuert. Wenn ich einen Blick in die Tabelle im debugger aus, es hat die richtigen Spalten und Anzahl der Zeilen. Das problem ist, erscheint das Gitter als eine leere graue box auf meiner form. Wenn ich binden Sie das raster in der Datenbank über VS 2008 Designer es geklappt hat. Wie kann ich das problem zurückzuverfolgen?
UPDATE
Ich ziemlich viel habe das von dieser MSDN-Artikel
UPDATE
Muss ich nichts tun, in der designer andere als drop-raster auf der Winform?
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SQLite;
using System.Windows.Forms;
namespace CC
{
public partial class Form1 : Form
{
private BindingSource bindingSource1 = new BindingSource();
private SQLiteDataAdapter dataAdapter = new SQLiteDataAdapter();
public Form1()
{
InitializeComponent();
dataGridView1 = new DataGridView();
this.Load += new System.EventHandler(Form1_Load);
this.Text = "Cars";
}
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.DataSource = bindingSource1;
GetData("select * from Cars");
}
private void GetData(string selectCommand)
{
string dbPath = "c:\\temp\\cars.db";
try
{
var connectionString = "Data Source=" + dbPath + ";Version=3";
dataAdapter = new SQLiteDataAdapter(selectCommand, connectionString);
SQLiteCommandBuilder commandBuilder = new SQLiteCommandBuilder(dataAdapter);
DataTable table = new DataTable();
table.Locale = System.Globalization.CultureInfo.InvariantCulture;
dataAdapter.Fill(table);
bindingSource1.DataSource = table;
//Resize the DataGridView columns to fit the newly loaded content.
dataGridView1.AutoResizeColumns(
DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);
}
catch (SqlException)
{
MessageBox.Show("To run this example, replace the value of the " +
"connectionString variable with a connection string that is " +
"valid for your system.");
}
}
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Denke ich, müssen Sie die DataMember-Eigenschaft. Und ich denke, Sie benötigen keine verbindliche Quelle-Objekt, das direkt die Sie binden können, DataTable, DataGridView-Steuerelement.
Ich füge einen code, der hilft, zu binden gridview-Steuerelement mit SQL-Server-Datenbank, und es funktioniert gut für mich.
Sorry das ich nicht habe SQLite installiert 🙁
grundsätzlich i dont think u sollte kompliziert! hier ist eine einfache Möglichkeit:
Habe ich Schwierigkeiten mit sqlite und auch Datenbindung mit linq. Jetzt habe ich das gleiche Problem wie oben und landete Durchschleifen der Daten-Tabelle, um das Gitter zu füllen.
Ich habe bemerkt, mit anderen kleinere Probleme mit sqlite bei der Verwendung von Datentabellen und auch databinding-also denke ich, liegt das problem mit sqlite.
Hier finden Sie den code, um Zeit zu sparen für jedermann.