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