问题一:
我想将xml传给sqlserver存储过程来操作,有谁会的举个例子,最好能详细一点,怎么读取xml文档赋给一个string.
问题二:
在网上看到一个获取本机MAC地址的方法,但是我根本找不到ManagementClass这个类,也用了using System.Management;在MSDN上看到确实有这个类,但是就是代码里找不到,我用的是VS2008,是不是已经取消这个类了?
string s = "", mac = "";
//
//name
//
string hostInfo = Dns.GetHostName(); //
//IP
System.Net.IPAddress[] addressList = Dns.GetHostByName(Dns.GetHostName()).AddressList;
for (int i = 0; i < addressList.Length; i++)
{
s += addressList[i].ToString();
}
//
//mac
// ManagementClass mc;
mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc)
{
if (mo["IPEnabled"].ToString() == "True") mac = mo["MacAddress"].ToString();
}
//txtName.Text = hostInfo;
//txtIp.Text = s;
Response.Write(""+ mac+"");
我想将xml传给sqlserver存储过程来操作,有谁会的举个例子,最好能详细一点,怎么读取xml文档赋给一个string.
问题二:
在网上看到一个获取本机MAC地址的方法,但是我根本找不到ManagementClass这个类,也用了using System.Management;在MSDN上看到确实有这个类,但是就是代码里找不到,我用的是VS2008,是不是已经取消这个类了?
string s = "", mac = "";
//
//name
//
string hostInfo = Dns.GetHostName(); //
//IP
System.Net.IPAddress[] addressList = Dns.GetHostByName(Dns.GetHostName()).AddressList;
for (int i = 0; i < addressList.Length; i++)
{
s += addressList[i].ToString();
}
//
//mac
// ManagementClass mc;
mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in moc)
{
if (mo["IPEnabled"].ToString() == "True") mac = mo["MacAddress"].ToString();
}
//txtName.Text = hostInfo;
//txtIp.Text = s;
Response.Write(""+ mac+"");
然后你在.net的选项卡里边找.有一个System.Management的项(其实是个dll).把他添进去你就能用了
#region 将数据集批量更新到数据库
public static DataSet UpdateDs(DataSet changedDs, string tableName,string sql)
{
using (SqlConnection connection = new SqlConnection(connStr))
{
//SqlTransaction myTrans = connection.BeginTransaction(); //使用New新生成一个事务
SqlDataAdapter da = new SqlDataAdapter(sql, connection);
//da.SelectCommand.Transaction = myTrans;
try
{
SqlCommandBuilder sqlCmdBuilder = new SqlCommandBuilder(da);
da.Update(changedDs, tableName);
changedDs.AcceptChanges();
//myTrans.Commit();
return changedDs;//返回更新了的数据库表
}
catch (Exception ex)
{
//myTrans.Rollback();
throw new Exception(ex.Message);
}
}
}
#endregion
@XMLDOC varchar(8000)
AS
declare @xml_hndl int
--prepare the XML Document by executing a system stored procedure
exec sp_xml_preparedocument @xml_hndl OUTPUT, @XMLDOC
--insert into table
Insert Into CodeSamples
(
Name
)
Select
IDToInsert
From
OPENXML(@xml_hndl, '/items/item', 1)
With
(
IDToInsert nvarchar(200) '@id'
)
GOprivate void Button3_Click(object sender, System.EventArgs e)
{
StringBuilder sb = new StringBuilder();
sb.Append("<items>"); // Gets the selected rows in the datagrid
foreach(DataGridItem dgi in myDataGrid.Items)
{
CheckBox myCheckBox = (CheckBox) dgi.Cells[2].Controls[1]; // Check to see if the CheckBox is checked or not
if(myCheckBox.Checked == true)
{
// Make the string here
sb.Append("<item id=\"");
sb.Append(dgi.Cells[0].Text);
sb.Append("\">");
sb.Append("</item>");
} } sb.Append("</items>");
Database db = DatabaseFactory.CreateDatabase();
DBCommandWrapper insertCommandWrapper = db.GetStoredProcCommandWrapper("usp_InsertManyRows");
insertCommandWrapper.AddInParameter("@XMLDOC",DbType.String,sb.ToString()); try
{
db.ExecuteNonQuery(insertCommandWrapper);
Label1.Text = "Data Inserted";
}
catch(Exception ex)
{
Label1.Text = ex.Message;
}
}
然后在把更新后的数据查出来,这里也要传递事务,要不是查不出来的.
怎么会报类型转换错误,我看过别人都这样写的。
FileStream fs = File.Open(Server.MapPath("test.xml"),FileMode.Append,FileAccess.Read);
问题一:只能通过存储过程实现,SqlCommandBuilder本身包含事务,但其缺点在于无法同时操作多个记录集。
xml读成文本下面方法可以。
StreamReader sr = new StreamReader(Server.MapPath("test.xml"));
string str = sr.ReadToEnd();