簡體   English   中英

C#DataTable SQL查詢未插入數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM