0

私は web サービスを使用して単純なドメイン アプリケーションを開発しています。whois wsdlを使用してドメイン情報を取得しました。これはうまく機能していますが、データ全体を取得しています。問題は、ドメイン名、作成日、有効期限など、そのサーバーから選択したデータのみが必要なことです。日にち。

私の設計では、textbox1 に任意のドメイン名を入力したときに 2 つのテキスト ボックスを作成しました。ドメイン名が 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 呼び出しを分離します。しかし、例のために、すべてをまとめました。また、テキスト ボックスの名前は変更していませんが、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 を使用しました。

于 2013-02-11T09:10:25.053 に答える