//-----------------客户端------------
<script language=vbscript>
Sub CaseAddSend()
Set xmlhttp = CreateObject("Microsoft.XMLHTTP")
xmlhttp.open "POST","Test.aspx?Type=Add",false
xmlhttp.Send xmlApp.xml '发送数据
If xmlHTTP.responseXML.SelectNodes("/Error").Length>0 Then
Msgbox xmlHTTP.responseXML.SelectSingleNode("/Error").Text
Else
Msgbox "添加成功!"
window.location.reload
End If
End Sub
</script>
<body MS_POSITIONING="GridLayout">
<XML id="xmlApp">
<M_Company>
<Coid></Coid>
<EngName></EngName>
<LocalName></LocalName>
<EngAddress1></EngAddress1>
<EngAddress2></EngAddress2>
</M_Company>
</XML>
<form id="Form1" method="post" runat="server">
<TABLE class="CmTbl" dataSrc="#xmlApp" cellSpacing="1" cellPadding="2" width="100%" align="center"
border="0">
<tr>
<td>Coid</td>
<td><input dataFld="Coid" id="Coid" type="text"></td>
</tr>
<tr>
<td>EngName</td>
<td><input dataFld="EngName" id="EngName" type="text"></td>
</tr>
<tr>
<td>LocalName
</td>
<td><input dataFld="LocalName" id="LocalName" type="text"></td>
</tr>
<tr>
<td>EngAddress1
</td>
<td><input dataFld="EngAddress1" id="EngAddress1" type="text"></td>
</tr>
<tr>
<td>EngAddress2</td>
<td><input dataFld="EngAddress2" id="EngAddress2" type="text"></td>
</tr>
<TR>
<TD align="center" colSpan="2"><INPUT id="Button2" onclick="CaseAddSend()" type="button" value="增加" name="Submit" runat="server">
</TD>
</TR>
</TABLE>
<script language=vbscript>
Sub CaseAddSend()
Set xmlhttp = CreateObject("Microsoft.XMLHTTP")
xmlhttp.open "POST","Test.aspx?Type=Add",false
xmlhttp.Send xmlApp.xml '发送数据
If xmlHTTP.responseXML.SelectNodes("/Error").Length>0 Then
Msgbox xmlHTTP.responseXML.SelectSingleNode("/Error").Text
Else
Msgbox "添加成功!"
window.location.reload
End If
End Sub
</script>
<body MS_POSITIONING="GridLayout">
<XML id="xmlApp">
<M_Company>
<Coid></Coid>
<EngName></EngName>
<LocalName></LocalName>
<EngAddress1></EngAddress1>
<EngAddress2></EngAddress2>
</M_Company>
</XML>
<form id="Form1" method="post" runat="server">
<TABLE class="CmTbl" dataSrc="#xmlApp" cellSpacing="1" cellPadding="2" width="100%" align="center"
border="0">
<tr>
<td>Coid</td>
<td><input dataFld="Coid" id="Coid" type="text"></td>
</tr>
<tr>
<td>EngName</td>
<td><input dataFld="EngName" id="EngName" type="text"></td>
</tr>
<tr>
<td>LocalName
</td>
<td><input dataFld="LocalName" id="LocalName" type="text"></td>
</tr>
<tr>
<td>EngAddress1
</td>
<td><input dataFld="EngAddress1" id="EngAddress1" type="text"></td>
</tr>
<tr>
<td>EngAddress2</td>
<td><input dataFld="EngAddress2" id="EngAddress2" type="text"></td>
</tr>
<TR>
<TD align="center" colSpan="2"><INPUT id="Button2" onclick="CaseAddSend()" type="button" value="增加" name="Submit" runat="server">
</TD>
</TR>
</TABLE>
//---------.cs------
if(Request.ServerVariables["REQUEST_METHOD"]== "POST")
{
Response.Charset="GB2312"; //页面编码格式
Response.ContentType = "text/xml";
//提交CaseUpdate
if(Request.QueryString["Type"]=="Add")
{
Config Err = new Config() ;
XmlDocument XmlDoc=new XmlDocument();
XmlDocument XmlRequest=new XmlDocument();
XmlDocument XmlResponse=new XmlDocument();
XmlRequest.Load(Request.InputStream); //提取客户端提交的xml数据
try
{
Config objSubmit = new Config();
objSubmit.CaseMainAdd(XmlRequest);
//判断错误
if(Err.ErrAllMessage=="")
{ //如果没错误 返回case号
//XmlResponse.LoadXml("<?xml version=\"1.0\"?><CaseID>" + CaseID.ToString() + "</CaseID>");
}
else
{
//如果有错误 返回错误信息
XmlResponse.LoadXml("<?xml version=\"1.0\"?><Error>" + Err.ErrAllMessage + "</Error>");
Err.ErrReset(); //复位错误信息
}
XmlResponse.Save(Response.OutputStream);
}
catch(Exception ex)
{
//Response.Redirect("ErrPage.aspx");
throw new ApplicationException(ex.Message);
}
finally
{
Response.End();
}
}
if(Request.ServerVariables["REQUEST_METHOD"]== "POST")
{
Response.Charset="GB2312"; //页面编码格式
Response.ContentType = "text/xml";
//提交CaseUpdate
if(Request.QueryString["Type"]=="Add")
{
Config Err = new Config() ;
XmlDocument XmlDoc=new XmlDocument();
XmlDocument XmlRequest=new XmlDocument();
XmlDocument XmlResponse=new XmlDocument();
XmlRequest.Load(Request.InputStream); //提取客户端提交的xml数据
try
{
Config objSubmit = new Config();
objSubmit.CaseMainAdd(XmlRequest);
//判断错误
if(Err.ErrAllMessage=="")
{ //如果没错误 返回case号
//XmlResponse.LoadXml("<?xml version=\"1.0\"?><CaseID>" + CaseID.ToString() + "</CaseID>");
}
else
{
//如果有错误 返回错误信息
XmlResponse.LoadXml("<?xml version=\"1.0\"?><Error>" + Err.ErrAllMessage + "</Error>");
Err.ErrReset(); //复位错误信息
}
XmlResponse.Save(Response.OutputStream);
}
catch(Exception ex)
{
//Response.Redirect("ErrPage.aspx");
throw new ApplicationException(ex.Message);
}
finally
{
Response.End();
}
}
----config.cs----
public void CaseMainAdd(XmlDocument XmlDoc)
{
SqlCommand command = new SqlCommand();
command.CommandText = "SP_MCompanyEdit";
command.CommandType = CommandType.StoredProcedure;
command.Connection = Conn;
Conn.Open();
command.Parameters.Add( new SqlParameter("@XmlApp",SqlDbType.NVarChar,1000));
command.Parameters["@XmlApp"].Value = XmlDoc.InnerXml.ToString();
command.Parameters.Add( new SqlParameter("@Method",SqlDbType.Int));
command.Parameters["@Method"].Value = 2;
try
{
command.ExecuteNonQuery();
Conn.Close();
}
catch(SqlException ex)
{
throw new ApplicationException(ex.ToString());
}
}
public void CaseMainAdd(XmlDocument XmlDoc)
{
SqlCommand command = new SqlCommand();
command.CommandText = "SP_MCompanyEdit";
command.CommandType = CommandType.StoredProcedure;
command.Connection = Conn;
Conn.Open();
command.Parameters.Add( new SqlParameter("@XmlApp",SqlDbType.NVarChar,1000));
command.Parameters["@XmlApp"].Value = XmlDoc.InnerXml.ToString();
command.Parameters.Add( new SqlParameter("@Method",SqlDbType.Int));
command.Parameters["@Method"].Value = 2;
try
{
command.ExecuteNonQuery();
Conn.Close();
}
catch(SqlException ex)
{
throw new ApplicationException(ex.ToString());
}
}
//------SP_MCompanyEdit.sql-----
IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'SP_MCompanyEdit')
BEGIN
PRINT N'删除存储过程 SP_MCompanyEdit'
DROP Procedure SP_MCompanyEdit
END
GO
PRINT N'生成存储过程 SP_MCompanyEdit'
GO
/******************************************************************************
** 文件: SP_MCompanyEdit.SQL
** 名称: SP_MCompanyEdit
** 功能:
** 作者: dodong
** 发布: 2006-08-08
**
*******************************************************************************
** 返回值列表
*******************************************************************************
** 返回值: 涵义:
** ------- -----------------------------------------------------------
** 0 操作成功
**
**
*******************************************************************************
** 其它说明
*******************************************************************************
**
**
*******************************************************************************
** 修订日志
*******************************************************************************
** 日期: 作者: 修订备注:
** ---------- -------- -----------------------------------------------
**
*******************************************************************************/
CREATE Procedure SP_MCompanyEdit
@XmlApp nVarchar(1000), --员工信息
@Method Int --操作,1添加,2修改
WITH ENCRYPTION
AS
DECLARE @Coid Varchar(10) --ID
DECLARE @EngName Nvarchar(100) ---EngName
DECLARE @LocalName Nvarchar(100) ---LocalName
DECLARE @EngAddress1 NVARCHAR(300) ----EngAddress1
DECLARE @EngAddress2 NVARCHAR(300) ----EngAddress2
DECLARE @iXmlApp INT
/**************************************************************************
** 解析数据
***************************************************************************/
--解析XML文件
EXEC sp_xml_preparedocument @iXmlApp OUTPUT, @XmlApp
--获取XML中的信息
SELECT @Coid=Coid,@EngName=EngName ,@LocalName = LocalName,@EngAddress1 = EngAddress1,@EngAddress2 = EngAddress2
FROM OPENXML (@iXmlApp, '/*', 2) WITH (
Coid Varchar(10),
EngName Nvarchar(100),
LocalName Nvarchar(100),
EngAddress1 NVARCHAR(300),
EngAddress2 NVARCHAR(300)
)
/**************************************************************************
** 检验数据
***************************************************************************/
/**************************************************************************
** 查询数据
***************************************************************************/
/**************************************************************************
** 更新数据
***************************************************************************/
If @Method=1 --添加
Begin
--If Not Exists(Select * From M_Company Where Coid=@Coid)
--Return -1206
---SELECT * INTO #M_COMPANY FROM M_COMPANY
INSERT INTO M_Company
(
Engname,
LocalName,
EngAddress1,
EngAddress2
)
VALUES
(
@EngName,
@LocalName,
@EngAddress1,
@EngAddress2
)
End
Else If @Method=2 --修改
Begin
--判断是否存在
Update M_Company
Set
EngName=@EngName,
LocalName=@LocalName,
EngAddress1=@EngAddress1,
EngAddress2=@EngAddress2
Where
Coid = @Coid
End
--BEGIN TRAN TranQ
--ROLLBACK TRAN TranQ
--COMMIT TRAN TranQ
RETURN 0
GO
GRANT EXEC ON SP_MCompanyEdit TO PUBLIC
GO
IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'SP_MCompanyEdit')
BEGIN
PRINT N'删除存储过程 SP_MCompanyEdit'
DROP Procedure SP_MCompanyEdit
END
GO
PRINT N'生成存储过程 SP_MCompanyEdit'
GO
/******************************************************************************
** 文件: SP_MCompanyEdit.SQL
** 名称: SP_MCompanyEdit
** 功能:
** 作者: dodong
** 发布: 2006-08-08
**
*******************************************************************************
** 返回值列表
*******************************************************************************
** 返回值: 涵义:
** ------- -----------------------------------------------------------
** 0 操作成功
**
**
*******************************************************************************
** 其它说明
*******************************************************************************
**
**
*******************************************************************************
** 修订日志
*******************************************************************************
** 日期: 作者: 修订备注:
** ---------- -------- -----------------------------------------------
**
*******************************************************************************/
CREATE Procedure SP_MCompanyEdit
@XmlApp nVarchar(1000), --员工信息
@Method Int --操作,1添加,2修改
WITH ENCRYPTION
AS
DECLARE @Coid Varchar(10) --ID
DECLARE @EngName Nvarchar(100) ---EngName
DECLARE @LocalName Nvarchar(100) ---LocalName
DECLARE @EngAddress1 NVARCHAR(300) ----EngAddress1
DECLARE @EngAddress2 NVARCHAR(300) ----EngAddress2
DECLARE @iXmlApp INT
/**************************************************************************
** 解析数据
***************************************************************************/
--解析XML文件
EXEC sp_xml_preparedocument @iXmlApp OUTPUT, @XmlApp
--获取XML中的信息
SELECT @Coid=Coid,@EngName=EngName ,@LocalName = LocalName,@EngAddress1 = EngAddress1,@EngAddress2 = EngAddress2
FROM OPENXML (@iXmlApp, '/*', 2) WITH (
Coid Varchar(10),
EngName Nvarchar(100),
LocalName Nvarchar(100),
EngAddress1 NVARCHAR(300),
EngAddress2 NVARCHAR(300)
)
/**************************************************************************
** 检验数据
***************************************************************************/
/**************************************************************************
** 查询数据
***************************************************************************/
/**************************************************************************
** 更新数据
***************************************************************************/
If @Method=1 --添加
Begin
--If Not Exists(Select * From M_Company Where Coid=@Coid)
--Return -1206
---SELECT * INTO #M_COMPANY FROM M_COMPANY
INSERT INTO M_Company
(
Engname,
LocalName,
EngAddress1,
EngAddress2
)
VALUES
(
@EngName,
@LocalName,
@EngAddress1,
@EngAddress2
)
End
Else If @Method=2 --修改
Begin
--判断是否存在
Update M_Company
Set
EngName=@EngName,
LocalName=@LocalName,
EngAddress1=@EngAddress1,
EngAddress2=@EngAddress2
Where
Coid = @Coid
End
--BEGIN TRAN TranQ
--ROLLBACK TRAN TranQ
--COMMIT TRAN TranQ
RETURN 0
GO
GRANT EXEC ON SP_MCompanyEdit TO PUBLIC
GO