我試圖將一些Perl代碼轉換爲C#,並且遇到以下問題。如何引用C#中sql服務器連接的列
在建立sql服務器連接並執行select語句後,如何引用表列中的不同元素。例如,在Perl它看起來像:
my $dbh = DBI -> connect(NAME, USR, PWD)
or die "Failed to connect to database: " . DBI->message;
my $dbname = DB_NAME;
my $dbschema = DB_SCHEMA;
my $sql = qq{select a,b,c,d,e,f,g,h,i,...
from $dbname.$dbschema.package p
join $dbname.$dbschema.package_download pd on p.package_id = pd.package_id
join $dbname.$dbschema.download d on pd.download_id = d.download_id
where p.package_name = '$package'
--and ds.server_address like 'tcp/ip'
order by a,b,c,d,..};
my $sth = $dbh -> prepare($sql)
or die "Failed to prepare statement: " . $dbh->message;
$sth -> execute()
or die "Failed to execute statement: " . $sth->message;
#now to go through each row in result table
while (@data = $sth->fetchrow_array())
{
print "$data[0]";
# If source server FTP is not already open, make new FTP
if ($data[0] != $src_id)
{
if ($src_ftp)
{ $src_ftp -> quit; }
$src_ftp = make_ftp($data[1], $data[2], $data[3], $data[18], $data[19], $data[20]);
$src_id = $data[0];
}
}
到目前爲止,我知道了下來
string db = NAME;
string myConnectionString = "Data Source=ServerName;" + "Initial Catalog=" + db + "User id=" + ODBC_USR + "Password=" + PWD
SqlConnection myConnection = new SqlConnection(myConnectionString);
string myInsertQuery = "select a,b,c,d,e,f,g,h,i,...
from $dbname.$dbschema.package p
join $dbname.$dbschema.package_download pd on p.package_id = pd.package_id
join $dbname.$dbschema.download d on pd.download_id = d.download_id
where p.package_name = '$package'
--and ds.server_address like 'tcp/ip'
order by a,b,c,d,..";
SqlCommand myCommand = new SqlCommand(myInsertQuery);
myCommand.Connection = myConnection;
myConnection.Open();
myCommand.ExecuteNonQuery();
myCommand.Connection.Close();
但如何引用列,如數據[0]和數據[1] C#。對不起,我是兩種語言的新手,所以我的背景嚴重缺乏。謝謝!