我有几个脚本需要在我的数据库上运行。所以我有几个问题。通过脚本创建表以及如何运行脚本
当打开到数据库的连接时,我只需使用Connection,CommandText,CommandType和CommandTimeout。
第一个问题 - 有谁知道如果通过这种方法,我可以创建permantent表,而不是临时表?
其次 - 我将如何运行此文件?我可以将文件设置为参数,并在查询中运行参数?
感谢
我有几个脚本需要在我的数据库上运行。所以我有几个问题。通过脚本创建表以及如何运行脚本
当打开到数据库的连接时,我只需使用Connection,CommandText,CommandType和CommandTimeout。
第一个问题 - 有谁知道如果通过这种方法,我可以创建permantent表,而不是临时表?
其次 - 我将如何运行此文件?我可以将文件设置为参数,并在查询中运行参数?
感谢
您可以在.NET SQL连接中执行任何操作,您可以在SQL脚本中执行任何操作。就“运行文件”而言,您需要将文件文本加载到内存中,并将加载的文本作为单个命令执行。
我们在应用中做类似的事情。我们的数据库脚本存储在SQL脚本中。我们将每个文件从磁盘顺序加载到内存中并执行。
在C# -
您可以创建永久和临时表这种方式。
将该脚本作为命令对象的CommandText运行。
感谢这个答复,说我需要不断更新的文件,所以我有文件的链接,而不是实际的文件,我只是通过参数运行它,还是有另一种方式? – Vibralux 2010-08-23 13:23:56
例如,从MSDN:如何设置参数的查询,
private static void UpdateDemographics(Int32 customerID,
string demoXml, string connectionString)
{
string commandText = "UPDATE Sales.Store SET Demographics = @demographics "
+ "WHERE CustomerID = @ID;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(commandText, connection);
command.Parameters.Add("@ID", SqlDbType.Int);
command.Parameters["@ID"].Value = customerID;
command.Parameters.AddWithValue("@demographics", demoXml);
try
{
connection.Open();
Int32 rowsAffected = command.ExecuteNonQuery();
Console.WriteLine("RowsAffected: {0}", rowsAffected);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
如何将文本加载到内存中,类似于使用(StreamReader sr - New StreamReader(“fileName”))' – Vibralux 2010-08-23 13:41:02
准确地说。或者使用File.ReadAllLines()。完整阅读文件,然后执行文本。为了更好地适应其他应用程序,请使用FileAccess.read和FileShare.Read打开FileStream,然后在FileStream上打开StreamReader。 – 2010-08-23 13:59:34