现在我想把sql2000里面的某个存储过程取出然后放到richtextbox里面: private void ChangeProcedure()//修改存储过程
{
//string text;
string sql = "use LightCtrDb exec sp_helptext AddRecord";
DataSet P_dr = new DataSet();
P_dr = G_SqlExecute.GetProcedure(sql);//将查询的内容绑定到数据集里 this.richTextBox1.Text = P_dr.GetXml();
richTextBox1.ScrollBars = RichTextBoxScrollBars.ForcedBoth;
}
可是取出来之后richtextbox的内容是这样的:
<NewDataSet>
<Table>
<Text>CREATE PROCEDURE AddRecord
</Text>
</Table>
<Table>
<Text>(
</Text>
</Table>
<Table>
<Text> @number INT OUTPUT,
</Text>
</Table>
<Table>
<Text> @room nvarchar(10),
</Text>
</Table>
<Table>
<Text> @floor nvarchar(10)
</Text>
</Table>
<Table>
<Text>)
</Text>
</Table>
<Table>
<Text>AS
</Text>
</Table>
<Table>
<Text>INSERT INTO Table1
</Text>
</Table>
<Table>
<Text>(
</Text>
</Table>
<Table>
<Text> 编号,
</Text>
</Table>
<Table>
<Text> 房间,
</Text>
</Table>
<Table>
<Text> 层
</Text>
</Table>
<Table>
<Text>)
</Text>
</Table>
<Table>
<Text>VALUES
</Text>
</Table>
<Table>
<Text>(
</Text>
</Table>
<Table>
<Text> @number,
</Text>
</Table>
<Table>
<Text> @room,
</Text>
</Table>
<Table>
<Text> @floor
</Text>
</Table>
<Table>
<Text>)
</Text>
</Table>
<Table>
<Text>select @number=@@Identity</Text>
</Table>
</NewDataSet>我不想要这个XML格式请问大家有没有什么好的方法??????可以只是取出存储过程的内容而已~
{
//string text;
string sql = "use LightCtrDb exec sp_helptext AddRecord";
DataSet P_dr = new DataSet();
P_dr = G_SqlExecute.GetProcedure(sql);//将查询的内容绑定到数据集里 this.richTextBox1.Text = P_dr.GetXml();
richTextBox1.ScrollBars = RichTextBoxScrollBars.ForcedBoth;
}
可是取出来之后richtextbox的内容是这样的:
<NewDataSet>
<Table>
<Text>CREATE PROCEDURE AddRecord
</Text>
</Table>
<Table>
<Text>(
</Text>
</Table>
<Table>
<Text> @number INT OUTPUT,
</Text>
</Table>
<Table>
<Text> @room nvarchar(10),
</Text>
</Table>
<Table>
<Text> @floor nvarchar(10)
</Text>
</Table>
<Table>
<Text>)
</Text>
</Table>
<Table>
<Text>AS
</Text>
</Table>
<Table>
<Text>INSERT INTO Table1
</Text>
</Table>
<Table>
<Text>(
</Text>
</Table>
<Table>
<Text> 编号,
</Text>
</Table>
<Table>
<Text> 房间,
</Text>
</Table>
<Table>
<Text> 层
</Text>
</Table>
<Table>
<Text>)
</Text>
</Table>
<Table>
<Text>VALUES
</Text>
</Table>
<Table>
<Text>(
</Text>
</Table>
<Table>
<Text> @number,
</Text>
</Table>
<Table>
<Text> @room,
</Text>
</Table>
<Table>
<Text> @floor
</Text>
</Table>
<Table>
<Text>)
</Text>
</Table>
<Table>
<Text>select @number=@@Identity</Text>
</Table>
</NewDataSet>我不想要这个XML格式请问大家有没有什么好的方法??????可以只是取出存储过程的内容而已~
详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细详细
我觉得楼上两位朋友提供的方法虽然都可以实现,但是实现起来很复杂,步骤很多!
我想要一种更加简便的方法!
因为后面我还要在将修改后的存储过程写回SQL2000,这又是一个难题!
如果用楼上两位朋友说的方法,那么后面写回去的时候可能又要再转换,所以...
拜托大家再帮我想想办法,除了这种办法以外还有没有其他更好的方法??
string fileName= P_dr.GetXml();
doc.Load(fileName);
XmlElement root = doc.DocumentElement;
XmlNodeList elemList = root.GetElementsByTagName("Text");
XmlElement root = doc.DocumentElement;
XmlNodeList elemList = root.GetElementsByTagName("Text");这两句代码是什么意思???
改成这样试试: private void ChangeProcedure()//修改存储过程
{
//string text;
string sql = "use LightCtrDb exec sp_helptext AddRecord";
DataSet P_dr = new DataSet();
P_dr = G_SqlExecute.GetProcedure(sql);//将查询的内容绑定到数据集里 foreach(DataRow dr in P_dr.Tables[0].Rows)
{
richTextBox1.Text += dr[0].ToString() + "\n";
}
richTextBox1.ScrollBars = RichTextBoxScrollBars.ForcedBoth;
}
现在如果我修改了存储过程怎么把它写回到SQL2000呢?
foreach(DataRow dr in xml)
{
richTextBox1.Text += dr[0].ToString() + "\n";;
}
刚这里写错错了,应该是LoadXml
自己写SQL然后执行
参考ALTER PROC