我正在使用Web服务开发一个简单的域应用程序。我使用 whois wsdl 获取了域信息。这项工作正常但我得到的全部数据问题是我只需要从中选择数据该服务器如域名,创建日期,到期日期。
在我的设计中,当在textbox1中输入任何域名时,我创建了两个文本框,如果它存在于whois服务器中,它必须在textbox2中显示选择性信息。
我尝试将这些值存储在文本文件中并将其名称保存在db中,但它不适用于我。任何想法的朋友
这是我的编码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class do01 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
string st = TextBox1.Text;
wservices.whois myservices = new wservices.whois();
TextBox2.Text = myservices.GetWhoIS(st);
}
}
这是我的屏幕截图
如果您有任何想法,只需在这里拍摄朋友......:)
答案 0 :(得分:0)
注意:请参阅下面的更新以了解更改答案
我假设您想要的是将一个包含此信息的表作为列中的纯文本。
基本表格定义
CREATE TABLE WhoIsData
(
Id INT PRIMARY KEY IDENTITY(1,1),
WhoIsData NVARCHAR(MAX)
)
我不知道st
是什么(这是你发送给服务的数据,如果你也想存储它,它可能在你的表中很有用。)
C#代码(粗略 - 我没有测试过它)
string st = TextBox1.Text;
wservices.whois myservices = new wservices.whois();
string textData = myservices.GetWhoIS(st);
TextBox2.Text = textData;
using(SqlConnection conn = new SqlConnection(connectionString));
{
SqlCommand cmd = new SqlCommand("INSERT INTO WhoIsData(WhoIsData) VALUES(@text);");
cmd.Connection = conn;
cmd.Parameters.AddWithValue("@text", textData);
conn.Open();
cmd.ExecuteNonQuery();
}
我将从现实生活中的用户界面类中分离出SQL调用。但是为了这个例子,我把它们放在了一起。另外,我没有重命名您的文本框,但TextBox1
和TextBox2
真的是坏名字。
<强>更新强>
好的 - 您希望将内容存储在文本文件中,但我假设您要在数据库中存储指向文本文件的链接(您不是非常具体)
表格定义:
CREATE TABLE WhoIsData
(
Id INT PRIMARY KEY IDENTITY(1,1),
DomainName NVARCHAR(256),
WhoIsFile NVARCHAR(256)
)
C#代码:
string st = TextBox1.Text;
wservices.whois myservices = new wservices.whois();
string textData = myservices.GetWhoIS(st);
TextBox2.Text = textData;
string fileName = Guid.NewGuid().ToString();
using(var file = File.OpenWrite(fileName))
{
file.Write(textData);
}
using(SqlConnection conn = new SqlConnection(connectionString));
{
SqlCommand cmd = new SqlCommand("INSERT INTO WhoIsData(DomainName, WhoIsFile) VALUES(@domainName, @fileName);");
cmd.Connection = conn;
cmd.Parameters.AddWithValue("@fileName", fileName);
cmd.Parameters.AddWithValue("@domainName", domainName);
conn.Open();
cmd.ExecuteNonQuery();
}
同样,我没有测试过这个,但它大致是你想做的。此外,您需要提供一种生成文件名的机制,我刚刚使用了一个guid,因为它几乎可以保证唯一性。