在C#中,使用DataTable进行数据清洗主要包括以下步骤:
using System.Data;
using System.Data.SqlClient;
DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Age", typeof(int));
// 添加数据行
DataRow row1 = dt.NewRow();
row1["ID"] = 1;
row1["Name"] = "Alice";
row1["Age"] = 30;
dt.Rows.Add(row1);
DataRow row2 = dt.NewRow();
row2["ID"] = 2;
row2["Name"] = "Bob";
row2["Age"] = 25;
dt.Rows.Add(row2);
// ... 添加更多数据行
删除空值:
dt.DefaultView.RowFilter = "Name IS NOT NULL AND Age IS NOT NULL";
dt = dt.DefaultView.ToTable();
删除重复值:
dt.DefaultView.RowFilter = "ID = 1 OR ID = 2"; // 根据需要修改条件
dt = dt.DefaultView.ToTable();
删除不符合条件的数据(例如年龄小于18):
dt.DefaultView.RowFilter = "Age >= 18";
dt = dt.DefaultView.ToTable();
string connectionString = "your_connection_string";
string insertSql = "INSERT INTO YourTable (ID, Name, Age) VALUES (@ID, @Name, @Age)";
using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand command = new SqlCommand(insertSql, connection))
{
command.Parameters.AddWithValue("@ID", dt.Rows[0]["ID"]);
command.Parameters.AddWithValue("@Name", dt.Rows[0]["Name"]);
command.Parameters.AddWithValue("@Age", dt.Rows[0]["Age"]);
connection.Open();
command.ExecuteNonQuery();
}
}
注意:以上示例中的your_connection_string
需要替换为实际的数据库连接字符串,YourTable
需要替换为实际的表名。
以上就是在C#中使用DataTable进行数据清洗的基本步骤。根据实际需求,可能需要进行更复杂的数据清洗操作。