如何解决连接到aspx,c#中的SQL数据库
| 我目前有一个aspx页面,该页面具有一个可通过电话线收集数据的脚本。当前,数据正在写入文本文件,该文本文件将在深夜通过DTS作业泵送到数据库。我需要将aspx页面中的数据写入数据库。我遇到的部分问题是当aspx页仅包含脚本时,我不知道如何写入数据库。我尝试在脚本之前和之后打开连接,但是没有运气。任何想法,建议或文档链接将不胜感激。 这是我到目前为止的内容:<script language=\"C#\" runat=\"server\">
public class SQLSproc
{
public static void Main()
{
string connectionString = \"server=ABC;database=abc;uid=abc;pwd=1234\";
SqlConnection mySqlConnection = new SqlConnection(connectionString);
string procedureString = \"Callin_Insert\";
SqlCommand mySqlCommand = mySqlConnection.CreateCommand();
mySqlCommand.CommandText = procedureString;
mySqlCommand.CommandType = CommandType.StoredProcedure;
mySqlConnection.Open();
mySqlCommand.ExecuteNonQuery();
SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter();
mySqlDataAdapter.SelectCommand = mySqlCommand;
mySqlConnection.Close();
}
}
Boolean ParseXML(string XMLContent)
{
try
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(XMLContent);
String MenuID,Duration,CallerID,CallID,DateAndTime,VoiceFileName;
XmlNode TempNode;
Byte[] VoiceFile;
XmlElement root = doc.DocumentElement;
XmlAttributeCollection attrColl = root.Attributes;
//parse inbound values
MenuID = attrColl[\"menuid\"].Value;
Duration = attrColl[\"duration\"].Value;
CallID = attrColl[\"callid\"].Value;
CallerID = attrColl[\"callerid\"].Value;
//writed parsed values to file
StreamWriter w = File.AppendText(Request.MapPath(\"summaryincallISM.txt\"));
//w.Write(DateTime.Now.ToString(\"MM/dd/yyyy,HH:mm:ss\"));
w.Write(String.Format(\"\\\"{0:MM/dd/yyyy}\\\",\\\"{0:HH:mm:ss}\\\"\",DateTime.Now));
//w.WriteLine(\"MenuId: \" + MenuID);
//w.WriteLine(\"Duration: \" + Duration);
//w.WriteLine(\"CallId: \" + CallID);
//w.WriteLine(\"CallerId: \" + CallerID);
XmlNodeList NodeCount = doc.SelectNodes(\"/campaign/prompts/prompt\" );
foreach( XmlNode node in NodeCount)
{
attrColl = node.Attributes;
//w.WriteLine(\"Prompt ID: \" + attrColl[\"promptid\"].Value);
//w.WriteLine(\"Keypress : \" + attrColl[\"keypress\"].Value);
//w.Write(\",\" + attrColl[\"keypress\"].Value);
w.Write(\",\" + \"\\\"\" + attrColl[\"keypress\"].Value + \"\\\"\");
if (node.HasChildNodes)
{
TempNode = node.FirstChild;
attrColl = TempNode.Attributes;
//convert file to binary
VoiceFile = System.Convert.FromBase64String(TempNode.InnerText);
VoiceFileName = attrColl[\"filename\"].Value;
//save file in application path
FileStream fs = new FileStream(Request.MapPath(VoiceFileName),FileMode.OpenOrCreate);
BinaryWriter bw = new BinaryWriter(fs);
bw.Write((byte[]) VoiceFile);
bw.Close();
fs.Close();
w.WriteLine(\"Filename : \" + VoiceFileName);
}
}
void Page_Load(object sender,System.EventArgs e)
{
try
{
String xmlcontent,PostResponse,campaign;
Byte[] Bindata = Request.BinaryRead(Request.TotalBytes);
string XML;
XML = System.Text.Encoding.ASCII.GetString(Bindata);
StreamWriter w = File.AppendText(Request.MapPath(\"xmlsummaryincall.txt\"));
w.WriteLine(\"--- \" + DateTime.Now + \" ------------------------------------------------------\");
w.WriteLine(XML.Replace(\"<?xml version=\\\"1.0\\\"?>\",\"\")); //needed so ?xml tag will display as text
w.WriteLine(\"\");
w.WriteLine(\"\");
w.Close();
if (!ParseXML(XML)) Response.Write(\"Failed\");
}
catch (Exception error)
{
Response.Write(error.Message);
}
}
</script>
解决方法
由于ASP.NET代码不使用标准的静态void Main()入口点,因此您需要将代码放在Main的其他位置,例如Page_Load。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。