using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.Common;
using System.Windows.Forms;
namespace Tracing
{
static class Program
{
[STAThread]
static void Main()
{
SqlConnectionStringBuilder cnSettings;
SqlConnection cn;
SqlDataAdapter da;
SqlCommandBuilder cmdBld;
DataSet ds;
cnSettings = new SqlConnectionStringBuilder(
@"Data Source=.\SQLEXPRESS;"
+ "AttachDbFilename=|DataDirectory|NORTHWND.MDF;"
+ "Integrated Security=True;User Instance=True");
Console.WriteLine(cnSettings.ConnectionString);
Console.ReadKey();
cn = new SqlConnection(cnSettings.ConnectionString);
try
{
da = new SqlDataAdapter("Select * from Products", cn);
cmdBld = new SqlCommandBuilder(da);
ds = new DataSet();
da.Fill(ds, "Products");
foreach (DataRow dr in ds.Tables["Products"].Rows)
{
dr["UnitPrice"] = (decimal)dr["UnitPrice"] * (decimal)1.1;
}
da.Update(ds, "Products");
}
catch (DbException e)
{
MessageBox.Show(e.Message);
}
}
}
}
尝试为文件 .mdf 附加自动命名的数据库,但失败。已存在同名的数据库,或指定的文件无法打开或位于 UNC 共享目录中。
后来找到解决方法,复制文件到该目录。
问题2:无法启动Logman.exe跟踪
输入命令:
logman start mytrace -o out.etl -pf ProviderLists.txt
报错:2021 集合“Mytrace”没有启动
"ADONETDIAG.ETW" 0x2 0x0 ADONETDIAG.ETW
{914ABDE2-171E-C600-3348-C514171DE148} 0x2 0x0 System.Data.1
"System.Data.SNI.1" Ox2 0x0 System.Data.SNI.1
"SQLNCLI.1" 0x2 0x0 SQLNCLI.1
问题也得到解决:
在性能管理窗口中定义跟踪事件,然后将其与非系统事件ADONETDIAG.ETW联系起来,然后启动方式为手动,相关命令为tracing.exe,实验即可成功。