winform根据选择的Excel文件创建SQL server的数据表,并且每个字段都是nvarchart(255)的类型和长度
时间: 2024-04-20 19:27:08 浏览: 160
好的,我了解你的问题。首先,我们需要使用C#的Interop.Excel库来读取Excel文件。然后,我们可以使用System.Data.SqlClient命名空间下的类来创建SQL Server的数据表。以下是实现该功能的代码示例:
```csharp
using System;
using System.Data;
using System.Data.SqlClient;
using Excel = Microsoft.Office.Interop.Excel;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
// 选择Excel文件
Console.WriteLine("请选择Excel文件:");
string filePath = Console.ReadLine();
// 读取Excel文件
Excel.Application app = new Excel.Application();
Excel.Workbook workbook = app.Workbooks.Open(filePath);
Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];
Excel.Range range = worksheet.UsedRange;
// 创建SQL Server的数据表
string tableName = worksheet.Name.Replace("$", "");
string connectionString = "Data Source=(local);Initial Catalog=YourDatabase;Integrated Security=True";
string createTableQuery = $"CREATE TABLE {tableName} (";
for (int i = 1; i <= range.Columns.Count; i++)
{
string columnName = ((Excel.Range)range.Cells[1, i]).Value.ToString();
createTableQuery += $"{columnName} nvarchar(255),";
}
createTableQuery = createTableQuery.TrimEnd(',') + ")";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand command = new SqlCommand(createTableQuery, connection);
command.ExecuteNonQuery();
}
// 关闭Excel应用程序
workbook.Close(false);
app.Quit();
Console.WriteLine($"已成功创建表格 {tableName}");
Console.ReadLine();
}
}
}
```
注意,上述代码中的`YourDatabase`应替换为你所使用的数据库名称。此外,由于该程序使用Interop.Excel库,因此需要在Visual Studio中的“工具”>“NuGet包管理器”>“程序包管理器控制台”中运行以下命令来安装Interop.Excel:`Install-Package Microsoft.Office.Interop.Excel -Version 15.0.4795.1000`。
希望这可以帮助到你!
阅读全文