VBA コードを使用して、Excel から WCF を使用して開発された Web サービスを呼び出したいと考えています。どうすればこれを行うことができますか? メソッドを試してみましたGetObject()
が、これを使用しているときに構文エラーが発生します。Web サービスから取得したデータを Excel で表示したいと考えています。助けてください。DataContract は次のとおりです。
[DataContract]
public class Data
{
[DataMember]
public int Id;
[DataMember]
public DateTime LockTime;
[DataMember]
public DateTime LoginTime;
[DataMember]
public DateTime LastDefenitionDate;
[DataMember]
public string NTLogin;
[DataMember]
public string SystemName;
}
ServiceContract は次のとおりです。
`
[ServiceContract]
interface IDataService
{
[OperationContract]
List<Data> GetData();
[OperationContract]
void SubmitData(Data data);
}
`
データベースにアクセスするための DataService は次のとおりです。
`
[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)]
public class DataService : IDataService { public static SQLConnection SQLDBConnection = new SQLConnection();
#region IDataService Members
public List<Data> GetData()
{
List<Data> datas = new List<Data>();
try
{
if (SQLDBConnection.con.State == ConnectionState.Closed) SQLDBConnection.con.Open();
datas.Clear();
SqlCommand sqlcommand = new SqlCommand();
sqlcommand.Connection = SQLDBConnection.con;
sqlcommand.CommandText = "select * from tblData";
sqlcommand.CommandType = CommandType.Text;
SqlDataAdapter sqladapter = new SqlDataAdapter(sqlcommand);
DataTable dt = new DataTable();
sqladapter.Fill(dt);
Data data = null;
for (int i = 0; i < dt.Rows.Count; i++)
{
data = new Data();
data.Id = Convert.ToInt32(dt.Rows[i]["id"]);
data.NTLogin = dt.Rows[i]["NTLogin"].ToString();
data.SystemName = dt.Rows[i]["SystemName"].ToString();
data.LockTime = Convert.ToDateTime(dt.Rows[i]["LockTime"]);
data.LoginTime = Convert.ToDateTime(dt.Rows[i]["LoginTime"]);
data.LastDefenitionDate = Convert.ToDateTime(dt.Rows[i]["LastDefenitionDate"]);
datas.Add(data);
}
}
catch (Exception ex)
{ }
return datas;
}
public void SubmitData(Data data)
{
if (SQLDBConnection.con.State == ConnectionState.Closed) SQLDBConnection.con.Open();
SqlCommand sqlcommand = new SqlCommand();
sqlcommand.Connection = SQLDBConnection.con;
sqlcommand.CommandText = "Insert into dbo.tblData(NTLogin, SystemName, LockTime, LoginTime, LastDefenitionDate) values ('" + data.NTLogin + "','" + data.SystemName + "','" + data.LockTime + "' , '" + data.LoginTime + "', '" + data.LastDefenitionDate + "')";
sqlcommand.CommandType = CommandType.Text;
int RowsAffected = sqlcommand.ExecuteNonQuery();
}
#endregion
}
`
編集:
重複する可能性のある提案の答えはうまくいきませんでした。私のコード全体をここに示します。質問を投稿する前に、その投稿を確認しました。私のコードを確認してください。