我使用TableAdapter(DataSetTools)与我的数据库进行通信。我有一个datagridview,我想通过搜索查询的结果来填充它。这是我的代码:
myDataSet =我使用数据集工具创建的数据集的名称。
Test =数据库中我的表的名称。
myDataSetTableAdapters.TestTableAdapter myTableAdapter = new myDataSetTableAdapters.TestTableAdapter();
myDataSet.TestDataTable dt =myTableAdapter .Search(txtSearch.Text);
TestBindingSource.EndEdit();
TITable.Fill(dt);
testDataGridView.Update();
testDataGridView.Refresh();
问题是我没有在datagridview中看到任何变化。
答案 0 :(得分:0)
这是一个很好的(通用)例子,你应该可以很容易地遵循它。
using System;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string connetionString = null;
SqlConnection connection ;
SqlCommand command ;
SqlDataAdapter adapter = new SqlDataAdapter();
DataSet ds = new DataSet();
DataView dv ;
string sql = null;
connetionString = "Data Source=ServerName;Initial Catalog=DatabaseName;User ID=UserName;Password=Password";
sql = "Select * from product";
connection = new SqlConnection(connetionString);
try
{
connection.Open();
command = new SqlCommand(sql, connection);
adapter.SelectCommand = command;
adapter.Fill(ds, "Update");
adapter.Dispose();
command.Dispose();
connection.Close();
dv = new DataView(ds.Tables[0], "", "Product_Name", DataViewRowState.CurrentRows);
int index = dv.Find("PRODUCT5");
if (index == -1)
{
MessageBox.Show ("Product not found");
}
else
{
dv[index]["Product_Name"] = "Product11";
MessageBox.Show("Product Updated !");
}
dataGridView1.DataSource = dv;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
}
另外,请查看此示例。
using System;
using System.Data;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
SqlCommand sCommand;
SqlDataAdapter sAdapter;
SqlCommandBuilder sBuilder;
DataSet sDs;
DataTable sTable;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string connectionString = "Data Source=.;Initial Catalog=pubs;Integrated Security=True";
string sql = "SELECT * FROM Stores";
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
sCommand = new SqlCommand(sql, connection);
sAdapter = new SqlDataAdapter(sCommand);
sBuilder = new SqlCommandBuilder(sAdapter);
sDs = new DataSet();
sAdapter.Fill(sDs, "Stores");
sTable = sDs.Tables["Stores"];
connection.Close();
dataGridView1.DataSource = sDs.Tables["Stores"];
dataGridView1.ReadOnly = true;
save_btn.Enabled = false;
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
}
private void new_btn_Click(object sender, EventArgs e)
{
dataGridView1.ReadOnly = false;
save_btn.Enabled = true;
new_btn.Enabled = false;
delete_btn.Enabled = false;
}
private void delete_btn_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Do you want to delete this row ?", "Delete", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
dataGridView1.Rows.RemoveAt(dataGridView1.SelectedRows[0].Index);
sAdapter.Update(sTable);
}
}
private void save_btn_Click(object sender, EventArgs e)
{
sAdapter.Update(sTable);
dataGridView1.ReadOnly = true;
save_btn.Enabled = false;
new_btn.Enabled = true;
delete_btn.Enabled = true;
}
}
}
您可以使用以下链接找到许多其他示例。
http://csharp.net-informations.com/datagridview/csharp-datagridview-database-operations.htm