C#DataTable SQL查询不插入数据

时间:2014-02-27 13:55:16

标签: c# sql datagridview

我对SQL比较陌生,这是我第一次尝试在C#中使用它而无法理解为什么这不起作用,我知道我试图复制的列确实有值,但是当我尝试在DataGridViewer中显示'test'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;

3 个答案:

答案 0 :(得分:1)

看起来您忘记了一些事情或者没有提供所有代码。如果你能提供更多代码,我可以给你一个更好的答案。我猜你实际上没有一个名为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;
                }
            }
        }

答案 1 :(得分:0)

尝试这样的事情。您忘记了代码中的一些内容 - 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();

答案 2 :(得分:0)

我创建了一个新方法。您可以简单地调用该方法来填充网格

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);