1、选择开始菜单中→程序→ManagementSQLServer2008→SQLServerManagementStudio命令,打开SQLServerManagementStudio窗口,并使用Windows或SQLServer身份验证建立连接。
2、在对象资源管理器窗口中展开服务器,然后选择数据库节点
3、右键单击数据库节点,从d出来的快捷菜单中选择新建数据库命令。
4、执行上述 *** 作后,会d出新建数据库对话框。在对话框、左侧有3个选项,分别是常规、选项和文件组。完成这三个选项中的设置会后,就完成了数据库的创建工作,5、在数据库名称文本框中输入要新建数据库的名称。例如,这里以“新建的数据库”。
6、在所有者文本框中输入新建数据库的所有者,如sa。根据数据库的使用情况,选择启用或者禁用使用全文索引复选框。
7、在数据库文件列表中包括两行,一行是数据库文件,而另一行是日记文件。通过单击下面的添加、删除按钮添加或删除数据库文件。
8、切换到选项页、在这里可以设置数据库的排序规则、恢复模式、兼容级别和其他属性。
9、切换到文件组页,在这里可以添加或删除文件组。
10、完成以上 *** 作后,单击确定按钮关闭新建数据库对话框。至此“新建的数据”数据库创建成功。新建的数据库可以再对象资源管理器窗口看到。
1可以使用ADO连接数据库,具体的知识还比较的多,所以建议随便找本mfc的书本看看,可以直接使用mfc向导里的选项,非常方便的。2使用odbc连接数据库,较于复杂,而且速度明显无ado快(顺便吐槽一下odbc在windows程序开发中就是鸡肋,从来都很少有人用的。)简单的说,就是双击列表框某行,d出新对话框,将新对话框数据保存回列表框某行是吧?
首先说,新对话框(设置)里面信息很多,如果都在列表框显示着还好说,如果不显示,那么就需要你自己做一个数组或者结构体指针链表来保存这些数据了,列表框能存储的单行信息,除了显示的,只有一个data,无法保存更多信息。
其次,d出对话框的信息交互,如果是DoModal模态d出,那么一般是在主对话框的DoModal处和新对话框的OnOK函数中完成数据交互的。交互的办法,通常是在新对话框建立一个非控件关联变量,在OnOK中对该变量赋值,在if(IDOK==newDlgDoModal())中获取该值到主对话框,并赋值列表框。
最后需要注意的是,标准MFC列表框没有修改单行显示的功能,只能DeleteItem之后InsertItem完成修改显示。用ShowScrollBar可以显示滚动条。SetScrollRange设置滚动范围。
响应消息WM_VSCROLL和WM_HSCROLL。
可能需要移动控件的位置,再重绘。
自己处理有点麻烦,建议改用CFormView。
if(IDOK==dlgDoModal())
这条语句执行完成之后,对话框对象还在,窗口已经销毁。这时候去 *** 作对话框界面肯定不行的
模态对话框,初始化在对话框类的OnInitDialog里面(代码里没有Classwizard重载),绘制 *** 作在OnPaint里面。
获取文档类办法很多,以你当前代码为例:
CGraphicsDlg dlg;dlgpDoc = GetDocument();//传递文档类指针,对话框类成员变量pDoc
if(IDOK==dlgDoModal())
{
}
这样传递之后,对话框类成员函数都可以通过pDoc->变量; 获取文档类数据了,注意对话框类需要包含文档类头文件。
1提取单条记录
//importjavasql;
Connectionconn=null;
Statementstmt=null;
ResultSetrs=null;
try{
ClassforName("sunjdbcodbc");
Stringurl="jdbc:odbc:%%1";
con=(url,%%2,%%3);
stmt=conn();
stmt(%%4);
rs=stmt(%%5);
}catch(Exceptione){
e();
}
finally{
try{
if(rs!=null)
rsclose();
if(stmt!=null)
stmtclose();
if(conn!=null)
connclose();
}catch(e){
e();
}
}
3显示表格
/
importjavaawt;
importjavaxswing;
importjavasql;
importjavaxswingtable;
String[]colHeads=%%4;
Connectionconn=null;
Statementstmt=null;
ResultSetrs=null;
try{
ClassforName("sunjdbcodbc");
Stringurl="jdbc:odbc:%%1";
conn=(url,%%2,%%3);
stmt=conn();
rs=stmt("SELECTcount()asau_countfrom"%%5);
rsnext();
intiCount=rsgetInt("au_count");
Object[][]data=newObject[iCount][];
inti=0;
rs=stmt("SELECTfrom"%%5);
while(rsnext()){
data[i]=newObject[iCount];
data[i][0]=rsgetString("au_fname");
data[i][1]=rsgetString("Phone");
data[i][2]=rsgetString("City");
i;
}
JTabletable=newJTable(data,colHeads);
JScrollPanejsp=newJScrollPane(table);
()add(jsp);
}catch(Exceptione){
eprintStackTrace();
}
finally{
try{
if(rs!=null)
rsclose();
if(stmt!=null)
stmtclose();
if(conn!=null)
connclose();
}catch(SQLExceptione){
eprintStackTrace();
}
}
6关闭时关闭连接
//importjavasql;
addWindowListener(newWindowAdapter{
publicvoidwindowClosing(WindowEventwevent){
if(stmt!=null){
try{
if(rs!=null)
rsclose();
if(stmt!=null)
stmtclose();
if(conn!=null)
connclose();
}catch(SQLExceptione){
eprintStackTrace();
}
}
7执行命令
//importjavasql;
Connectionconn=null;
PreparedStatementpst=null;
try{
conn=DriverManagergetConnection(url);
pst=connprepareStatement("InsertIntograde(%%1)Values()");
pstsetInt(1,%%2);
//pstsetString(2,%%2);
pstaddBatch();
pstexecuteBatch();
}catch(SQLExceptione){
eprintStackTrace();
}
finally{
try{
if(pst!=null)
pstclose();
if(conn!=null)
connclose();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
eprintStackTrace();
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)