[英]C# DataTable SQL query not inserting data
我对SQL比较陌生,这是我第一次尝试在C#中使用它,并且不明白为什么它不起作用,我知道我要复制的列中确实有值,但是当我尝试并在DataGridViewer中显示“测试” DataTable,根本没有行
数据来自服务器上的数据库,并且在将DataGridViewer.DataSource设置为thisDataSet.USERS时显示正常
这是我的代码:
DataTable test = new DataTable();
test.Columns.Add("UserID");
SqlCommand command = new SqlCommand();
command.CommandText = "INSERT INTO test (UserID) SELECT USER_ID FROM thisDataSet.USERS";
command.ExecuteNonQuery();
dgvDataViewer.DataSource = test;
看起来您正在忘记一些事情或没有提供所有代码。 如果您可以提供更多代码,我可能会给您一个更好的答案。 我猜您实际上没有一个名为thisDataSet的数据库和一个名为Users的表? 如果您这样做的话,可能只是一种奇怪的命名方式。
还想指出的是,我不会关闭我的DataAdapter或SQL连接,因为它们是IDisposable并包含在using语句中的,所以可以为您完成。
DataTable test = new DataTable();
using (SqlConnection conn = new SqlConnection("CONN STRING HERE"))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "do sql stuff";
cmd.ExecuteNonQuery();
cmd.CommandText = "select * from test";
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
da.Fill(test);
dgvDataViewer.DataSource = test;
}
}
}
尝试这样的事情。 您从代码中忘记了一些东西- connection string
,打开连接等...
SqlDataReader Reader = null;
SqlConnection Connection = null;
SqlCommand Command = null;
string ConnectionString = "YourConnectionString";
string CommandText = "SELECT USER_ID AS [UserID] FROM MySQLtable";
Connection = new SqlConnection(ConnectionString);
Connection.Open();
Command = new SqlCommand(CommandText, Connection);
Reader = Command.ExecuteReader();
DataTable test= new DataTable();
test.Load(Reader);
Reader.Close();
Command.Dispose();
Connection.Close();
我创建了一个新方法。 您可以简单地调用该方法来填充网格
public DataTable GetData(SqlConnection Cn)
{
try
{
DataTable dt = null;
using (var cmd = new SqlCommand())
{
cmd.Connection = Cn;
cmd.CommandText = "select * from Table";
using (var sda = new SqlDataAdapter(cmd))
{
dt = new DataTable();
sda.Fill(dt);
}
}
return contNames;
}
catch (Exception err)
{
return null;
}
}
并填充您的数据网格:
var con = new SqlConnection("connectionstring");
dataGridView1.DataSource = GetData(connection);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.