C#下拉列表 从数据库获取数据类型的代码怎么写

C#下拉列表 从数据库获取数据类型的代码怎么写,第1张

下拉列表里面的 元素 “是”和“否”不叫数据类型~

数据库里面的“是”和“否”~数据类型是char~

你的意思是想~

数据库里面读出 “是” 和 “否”,然后在下拉列表显示出来把。

数据表随便建一个:

id ctype

1 是

2 否

然后这是c#代码

private void dropdownlist_Load(object sender, EventArgs e)

{

SqlConnection cn = new SqlConnection("server=;database=TestDatalist;integrated security=SSPI");

SqlCommand cm = new SqlCommand("select ctype from choess", cn);

SqlDataReader r;

cnOpen();

r = cmExecuteReader();

while (rRead())

{

comboBox1ItemsAdd(rGetValue(0)ToString());

}

cnClose();

}

连接字符串~根据自己的数据库改吧~

char转换

Qt下面,字符串都用QString,确实给开发者提供了方便,想想VC里面定义的各种变量类型,而且函数参数类型五花八门,经常需要今年新那个类型转换

Qt再使用第三方开源库时,由于库的类型基本上都是标准的类型,字符串遇的多的就是Char类型

在Qt下怎样将QString转char呢,需要用到QByteArray类,QByteArray类的说明详见Qt帮助文档。

因为char最后都有一个‘/0’作为结束符,而采用QString::toLatin1()时会在字符串后面加上‘/0’

方法如下:

Qstring

str;

char

ch;

QByteArray

ba

=

strtoLatin1();

ch=badata();

这样就完成了QString向char的转化。经测试程序运行时不会出现bug

注意第三行,一定要加上,不可以strtoLatin1()data()这样一部完成,可能会出错。

补充:以上方法当QString里不含中文时,没有问题,但是QString内含有中文时,转换为char就是乱码,采用如下方法解决:

方法1:

添加GBK编码支持:

#include

<QTextCodec>

QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));

QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));

然后改变上面的第三行为:QByteArray

ba

=

strtoLoacl8Bit();

toLoacl8Bit支持中文

方法2:

先将QString转为标准库中的string类型,然后将string转为char,如下:

std::string

str

=

filenametoStdString();

const

char

ch

=

strc_str();

aReader sdr;//sdr在此定义

你只是定义了一个sqldatareader类型的 ser但是你没有实例化它的代码啊

你的Button1_Click里面的是正确的,

SqlDataReader sdr = sqlcommandExecuteReader();

但是在这个Button2_Click中你没有实例化sdr啊,你的sdr是个空的

在说了你的button2想查看下一条记录,你查询数据库的代码呢??

你最好不要这样写,你最好先把数据查出来,放在一个dataset或者datatable里面,然后点击一次button根据索引去从dataset或者datatable中去查找你要的数据

1、首先打开MYSQL的管理工具,新建一个test表,并且在表中插入两个字段。

2、接下来在Editplus编辑器中创建一个PHP文件,然后进行数据库连接,并且选择要 *** 作的数据库。

3、然后通过mysql_query方法执行一个Insert的插入语句。

4、执行完毕以后,我们回到数据库管理工具中,这个时候你会发现插入的中文乱码了。

5、接下来我们在PHP文件中通过mysql_query执行一个set  names  utf8语句即可完成 *** 作。

这三个表对你有用

sysobjects和syscolumns和systypes

第一个可以查到表,第二个表可以查到列,第三个表可以查到数据类型

关联起来用就可以得到某个表中所有列的数据类型了

经过access测试,ok

String url = "jdbc:odbc:test";//最后一个为数据库名

Statement sm = null;

String command = null;

ResultSet rs = null;

String tableName = null;

String cName = null;

String result = null;

String []pram = new String[1];

List <String> tables = new ArrayList<String>();

pram[0] = "table";

BufferedReader input = new BufferedReader(new InputStreamReader(

Systemin));

try {

try {

ClassforName("sunjdbcodbcJdbcOdbcDriver"); // 加载驱动

} catch (ClassNotFoundException e) {

Systemoutprintln("Can not load Jdbc-Odbc Bridge Driver");

Systemerrprint("ClassNotFoundException:");

Systemerrprintln(egetMessage());

}

Connection con = DriverManagergetConnection(url, "admin", "admin"); // 连接到数据库

DatabaseMetaData dm = congetMetaData();

rs = dmgetTables(null, null, null, pram);//查找所有的表

while(rsnext()){

tablesadd(rsgetString(3));

}

rsclose();

for(String tb : tables){

rs = dmgetColumns(null, null, tb, null);//查找当前表的字段

Systemoutprintln("\nthe table is: " + tb);

ResultSetMetaData rsmd = rsgetMetaData();

int len, type;

len = rsmdgetColumnCount();

// Systemoutprintln(len);

for(int i = 1; i <= len; i ++){

type = rsmdgetColumnType(i);

//这里是获取了一个字段类型的int型,需要转化成string的话要做一个swtich,就不转了,你自己看javasqlTypes这个类去

Systemoutprint("\t" + rsmdgetColumnName(i) + ": " + rsmdgetColumnType(i));

}

}

rsclose();

conclose();

// }

} catch (SQLException ex) {

Systemoutprintln("SQLException:");

while (ex != null) {

Systemoutprintln("Message:" + exgetMessage());

ex = exgetNextException();

}

} catch (Exception e) {

Systemoutprintln("IOException");

}

以上就是关于C#下拉列表 从数据库获取数据类型的代码怎么写全部的内容,包括:C#下拉列表 从数据库获取数据类型的代码怎么写、sqlite的数据库类型char怎么获取、C# 获取数据库字段类型--不想用Dataset,DataReader等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9272839.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存