我有分贝。我连接到它并请求感兴趣的领域。如何进一步将收到的信息放在 Word 中的表格中(准确地说,如何循环接收收到的信息以及如何获取其特定值)。也许有些事情需要做不同的事情,建议。
int Rieltor_code = int.Parse(comboBox3.SelectedValue.ToString());
if (comboBox4.Text.Trim() == "Таблица") {
con.Open();
string query = "SELECT \"Object_nedvizimosti\".\"adress\", \"Prodaja\".\"Data\",
\"Object_nedvizimosti\".\"stoimost\", \"Prodaja\".\"Stoimost\",
(\"Prodaja\".\"Stoimost\" /\"Object_nedvizimosti\".\"stoimost\") " +
"FROM \"Prodaja\", \"Object_nedvizimosti\", \"Rieltor\" " +
"WHERE \"Prodaja\".\"Object_code\" = \"Object_nedvizimosti\".\"object_code\"
and" + " \"Object_nedvizimosti\".\"statuc\" = 0
and \"Prodaja\".\"Rieltor_code\" = \"Rieltor\".\"rieltor_code\""
+ @Rieltor_code ;//еще нужна дата продажи
NpgsqlCommand com = new NpgsqlCommand(query, con);
com.ExecuteNonQuery();
con.Close();
var Ворд1 = new Ворд.Word.Application();
Ворд1.Visible = true;
Ворд1.Documents.Add();
Ворд1.Selection.TypeText("ТАБЛИЦА ОБЪЕКТОВ НЕДВИЖИМОСТИ");
Ворд1.ActiveDocument.Tables.Add(Ворд1.Selection.Range, 30, 5,
Ворд.Word.WdDefaultTableBehavior.wdWord9TableBehavior,
Ворд.Word.WdAutoFitBehavior.wdAutoFitContent);
while (query.Read())
{
Ворд1.ActiveDocument.Tables[1].Cell(i, 1).Range.InsertAfter(query.GetValue(1).ToString());
Ворд1.ActiveDocument.Tables[1].Cell(i, 2).Range.InsertAfter(query.GetValue(2).ToString());
Ворд1.ActiveDocument.Tables[1].Cell(i, 3).Range.InsertAfter(query.GetValue(3).ToString());
Ворд1.ActiveDocument.Tables[1].Cell(i, 4).Range.InsertAfter(query.GetValue(4).ToString());
Ворд1.ActiveDocument.Tables[1].Cell(i, 5).Range.InsertAfter(query.GetValue(5).ToString());
}
Ворд1.Selection.MoveDown(Ворд.Word.WdUnits.wdLine, 9); ; }
您
query
不需要执行 from 方法Read
,因为这是一个简单的字符串,但com
您需要从变量调用ExecuteReader()
,将返回值存储在单独的变量中,然后在那里调用它Read()
。实际上,这是通过
IDE
制作红色下划线来暗示的。也不清楚为什么要在此处关闭连接,以及如何创建命令。
为了不使用醒目的转义
"
,\
可以@
在文本行前使用。