使用C#语言写一段 调用SQL Sever 数据库dll,增加数据,创建数据表,数据分为10类
时间: 2024-11-27 08:23:27 浏览: 11
在C#中,你可以使用ADO.NET(ActiveX Data Objects for .NET)来操作SQL Server数据库,包括连接、执行SQL命令以及处理数据。以下是一个简单的示例,展示了如何使用DLL(通常包含SqlConnection、SqlCommand等类)来执行增删改查操作,创建数据表,并将数据分成10类:
```csharp
using System.Data.SqlClient;
// 假设你有一个名为DatabaseHelper的DLL,其中封装了数据库操作的方法
using DatabaseHelper;
class Program
{
static void Main()
{
// 创建数据库连接
SqlConnection connection = new SqlConnection("Data Source=your_server;Initial Catalog=your_database;User ID=your_username;Password=your_password");
try
{
// 连接打开前检查是否已存在表,如果不存在则创建
if (!TableExists(connection, "YourTableName"))
{
CreateTable(connection, "YourTableName");
}
// 假定你的数据分为10类,每类存储在一个集合里,例如
List<DataClass1> dataList1 = ...;
List<DataClass2> dataList2 = ...; // 类型DataClass1至DataClass10
// 分别插入到对应的分类表中
foreach (List<DataClass1> data in GetClassesIntoTen(dataList1, dataList2, ..., dataList10))
{
InsertDataToCategory(connection, data, 1); // 假设类别ID从1开始
}
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
finally
{
// 关闭连接
connection.Close();
}
}
// 辅助函数判断表是否存在
private static bool TableExists(SqlConnection connection, string tableName)
{
SqlCommand command = new SqlCommand($"IF NOT EXISTS(SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[{tableName}'] AND type in (N'U')) SELECT 1", connection);
return (int)command.ExecuteScalar() == 1;
}
// 辅助函数创建数据表
private static void CreateTable(SqlConnection connection, string tableName)
{
string sqlCreateTable = $"CREATE TABLE [{tableName}] ({...})";
SqlCommand command = new SqlCommand(sqlCreateTable, connection);
command.ExecuteNonQuery();
}
// 插入数据到指定分类
private static void InsertDataToCategory(SqlConnection connection, List<DataClass> data, int categoryId)
{
string sqlInsert = "INSERT INTO YourTableName (CategoryID, OtherColumns) VALUES (@CategoryId, @OtherColumnValues)";
using (SqlCommand command = new SqlCommand(sqlInsert, connection))
{
command.Parameters.AddWithValue("@CategoryId", categoryId);
command.Parameters.AddWithValue("@OtherColumnValues", string.Join(",", data.Select(d => d.OtherValue)));
command.ExecuteNonQuery();
}
}
// 将所有列表分到十个类别中
private static List<List<DataClass>>[] GetClassesIntoTen(List<DataClass1> list1, List<DataClass2> list2, ...)
{
// 实现这部分逻辑,根据数据特性将其分配到对应类别
// ...
}
}
// 确保DataClass系列是你需要的实体类,每个类有类别相关的字段和其他字段
public class DataClass1
{
public int CategoryId { get; set; }
public string OtherValue { get; set; }
}
// ...
```
请注意,你需要替换上述代码中的`your_server`, `your_database`, `your_username`, 和 `your_password`为实际的数据库信息。此外,`GetClassesIntoTen`方法需要根据你的实际需求来设计,这里只是一个基本框架。
阅读全文