我们如何使用c#在SQL中插入datatable的值?第二个问题是我们如何将SQL表复制到datatable变量?
答案 0 :(得分:7)
更新:这个答案过去没有的一件事是链接到SQL和数据库新手的信息,所以我也会在这里放一些相关的链接,以便你(或其他任何人) )可以提高他们的SQL和其他数据库设计技能。
更新2 :以下是填充数据表的示例:
//Namespace References
using System.Data;
using System.Data.SqlClient
/// <summary>
/// Returns a DataTable, based on the command passed
/// </summary>
/// <param name="cmd">
/// the SqlCommand object we wish to execute
/// </param>
/// <returns>
/// a DataTable populated with the data
/// specified in the SqlCommand object
/// </returns>
/// <remarks></remarks>
public static DataTable GetDataTable(SqlCommand cmd)
{
try
{
// create a new data adapter based on the specified query.
SqlDataAdapter da = new SqlDataAdapter();
//set the SelectCommand of the adapter
da.SelectCommand = cmd;
// create a new DataTable
DataTable dtGet = new DataTable();
//fill the DataTable
da.Fill(dtGet);
//return the DataTable
return dtGet;
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
其中很多内容来自我之前写过的另一个答案,但它详细介绍了您的具体问题:
原始答案:
这听起来像或多或少需要从C#连接和操作数据库的基本介绍。上面的海报说看看LINQ to SQL,但你也可以看看ADO.NET的更基本的底层框架,它将让你了解它的工作原理。
此外,您可以将此站点right here用于C#的许多不同的数据库教程。
修改:来自C# Station,CodeProject和Codersource的更多信息
编辑2 :如果您对其他人如上所述的Linq to SQL感兴趣,请参阅C# Corner和C-Sharp Online
中的一些教程。编辑3 :其他人也会建议诸如ADO.NET实体框架之类的东西。对于仍然需要掌握使用数据库的基础知识的初学者,我不一定会建议这样做。以下是MSDN Overview
中的一些信息简单示例(这是直接从上面给出的C#Station链接中提取的)
清单1.使用SqlConnection
using System;
using System.Data;
using System.Data.SqlClient;
/// <summary>
/// Demonstrates how to work with SqlConnection objects
/// </summary>
class SqlConnectionDemo
{
static void Main()
{
// 1. Instantiate the connection
SqlConnection conn = new SqlConnection(
"Data Source=(local);Initial Catalog=Northwind;
Integrated Security=SSPI");
SqlDataReader rdr = null;
try
{
// 2. Open the connection
conn.Open();
// 3. Pass the connection to a command object
SqlCommand cmd =
new SqlCommand("select * from Customers", conn);
//
// 4. Use the connection
//
// get query results
rdr = cmd.ExecuteReader();
// print the CustomerID of each record
while (rdr.Read())
{
Console.WriteLine(rdr[0]);
}
}
finally
{
// close the reader
if (rdr != null)
{
rdr.Close();
}
// 5. Close the connection
if (conn != null)
{
conn.Close();
}
}
}
}
答案 1 :(得分:2)
对于这两种方法,您需要一个相关的数据适配器,例如SqlDataAdapter
我建议你找一本好的ADO.NET书或教程 - 它一定会在那里。或者,DataAdapters/DataReaders和Retrieving and Modifying Data in ADO.NET上有MSDN文章。
答案 2 :(得分:1)
我会在ADO.NET和LINQ to SQL上宣读初学者。