我在WPF中有一个数据网格,我通过数据表填充SQL查询结果。但是,当我将网格复制到剪贴板时,它始终以完整的日期/时间格式复制。这就是我在做的事情:
我有一个SQL语句来读取一些数据,包括数据库中的日期字段:
searchProDateSQLCMD.CommandText = "select pName, convert(date, pDate), FROM [Professionals] WHERE pName = @parName"
我用结果填充数据表:
dTableAdpater = new SqlDataAdapter(searchProDateSQLCMD);
dTable = new DataTable("Professionals");
dTableAdpater.Fill(dTable);
然后我设置网格列以显示信息:
DataGridTextColumn jDateCl = new DataGridTextColumn();
pDateCl.Binding = new Binding("pDate");
pDateCl.Binding.StringFormat = "{0:d}";
然后我将网格与我创建的列绑定
SearchResultGrid.Columns.Add(pDateCl);
当我尝试复制该列时:
SearchResultGrid.SelectAllCells();
SearchResultGrid.ClipboardCopyMode = DataGridClipboardCopyMode.IncludeHeader;
我把时间复制了;但时间格式为(dd/MM/yyyy 12:00:00 AM)
,即使我在SQL中使用convert()
,在列中使用{0:d}
。
我做错了什么?如果没有时间在副本上获取日期,我错过了什么?
答案 0 :(得分:0)
不幸的是,这是当前word = "Temple"
ten = 10
twenty = 20
thirty = 30
forty = 40
fifty = 50
answer = word[0] + str(ten) + word[1]+str(twenty)+word[2]+str(thirty) + word[3] + str(forty) + word[4] + str(fifty) + word[5]
的实施限制。
正如您在reference sources中看到的那样,DataGrid
使用简单的DataGrid
调用将单元格内容呈现到剪贴板中,而不提供任何格式。此调用将使用ToString()
和CultureInfo.CurrentCulture
的默认格式,从而获得结果。
所以你至少有两个选择:
将主线程的DateTime
设置为所需的日期/时间格式。请注意,这会影响任何CultureInfo
个对象上的所有ToString()
次调用,因此这可能不适合您。
使用DateTime
列并在服务器端进行转换,而不是使用DateTime
列。然而,这不是一个好的方法,因为你失去了string
类型的所有好处。