0

我正在使用 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);
}
}

这是我的截图

截屏

如果您有任何想法,请在这里拍摄朋友...... :)

4

1 回答 1

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 调用与您的用户界面类分开。但是为了这个例子,我把它们放在一起。另外,我还没有重命名您的文本框,尽管它们TextBox1TextBox2名字真的很糟糕。

更新

好的-您想将内容存储在文本文件中,但我假设您想在数据库中存储指向文本文件的链接(您不是很具体)

表定义:

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,因为它几乎可以保证唯一性。

于 2013-02-11T09:10:25.053 回答