
inner join sys.types as t on c.user_type_id = t.user_type_id
where c.[object_id] = object_id('dbo.YourTable') and c.[name] = 'YourColName'
或者,直接用type_name函数,更简洁:
SELECT name as [col_name], type_name(user_type_id) as [type_name] FROM sys.columns
where [object_id] = object_id('dbo.YourTable') and [name] = 'YourColName'
老是遇到TEXT类型和NTEXT类型的字段读不出来的问题.今天弄了半天,又查了资料,终于把这个问题搞定了首先我们应该了解这两个类型的字段到底有什么不同:虽然看起这他们是叫TEXT,但他不是用来保存文本的,实际上是用来保存文件,和IMAGE类型一样的,一般用来保存MIME类型的数据.而我把它用来保存新闻的主体内容了,这样能存的更多.结果老是读取不出来......我用的是ADO连接,在读取数据时,因为习惯了以前ASP的写法,用conn.execute()来读取,,,这种读取对存MIME类型的字段是无效的,,,所以改成rs.open的方法来读取就好了....记于此,以做学习.那么这两种执行方法在本质上有什么不同?个人认为用conn.execute()方式得到的RS里对MIME类型应该只是得到了一个索引,而用rs.open()的方式得到的应该是MIME类型的内容吧!对两种方式得到的RS的字节大小做个比较应该能说明结果.那么在应用时,在仅列出索引,标题什么的时,用conn.execute(). 在要显示完整内容时用rs.open(),我想这样能提高不少性能吧!首先数据库就是存储数据的仓库(字面理解),所以任何可以存储数据的文本文件都可以称为数据库——包括txt文档。下面是将一个集合从datagridview中导出到excel中:
DataTable datatable = initDataTable()
for (int i = 0i <ulList.Counti++)
{
DataRow datarow = datatable.NewRow()
datarow[0] = ulList[i].Time
datarow[9] = ulList[i].Remark
。。。。。。。
datatable.Rows.Add(datarow)
}
DataSet dataset = new DataSet()
dataset.Tables.Add(datatable)
ExportDataGridViewToExcel(datatable)
//ExportDataGridViewToExcel方法
private void ExportDataGridViewToExcel(DataTable dataGridTable)
{
SaveFileDialog saveFileDialog = new SaveFileDialog()
saveFileDialog.Filter = "Execl files (*.xls)|*.xls"
saveFileDialog.Title = "导出Excel文件到"
DateTime now = DateTime.Now
saveFileDialog.FileName = "日志-" + now.Year.ToString().PadLeft(2) + now.Month.ToString().PadLeft(2, '0') + now.Day.ToString().PadLeft(2, '0') + "-" + now.Hour.ToString().PadLeft(2, '0') + now.Minute.ToString().PadLeft(2, '0') + now.Second.ToString().PadLeft(2, '0')
saveFileDialog.ShowDialog()
Stream myStream
myStream = saveFileDialog.OpenFile()
StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding("gb2312"))
string str = ""
try
{
//写标题
for (int i = 0i <arycolumnname.Lengthi++)
{
if (i >0)
{
str += "\t"
}
str += arycolumnname[i]
}
sw.WriteLine(str)
//写内容
for (int j = 0j <dataGridTable.Rows.Countj++)
{
string tempStr = ""
for (int k = 0k <dataGridTable.Columns.Countk++)
{
if (k >0)
{
tempStr += "\t"
}
tempStr += dataGridTable.Rows[j][k].ToString()
}
sw.WriteLine(tempStr)
}
sw.Close()
myStream.Close()
MessageBox.Show("导出成功")
}
catch (Exception e)
{
MessageBox.Show(e.ToString())
}
finally
{
sw.Close()
myStream.Close()
}
}
//上面用到文件流将其保存程excel文件,还有其他的方式,可以网上收一下——一大堆。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)