當前位置:首頁 » 操作系統 » c創建資料庫的代碼

c創建資料庫的代碼

發布時間: 2022-06-29 01:42:15

㈠ 用C編寫資料庫怎麼寫

一個萬能的DBHelper就可以解決都事情,直接對資料庫中的存儲過程進行調用,只需要傳入參數就可以和你調用的存儲過程就可以。有關萬能DBHelper的參考代碼如下:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.sqlClient;

namespace Clock
{
public static class DBHelper
{
private static SqlConnection connection;//這里的SqlConnection 自己寫//對數據進行查詢時候調用的
public static SqlConnection Connection
{
get
{
string connectionString = "Data Source=PC-Ahsun;Initial Catalog=Clock; uid=sa;pwd=striveahsun";
if (connection == null)
{
connection = new SqlConnection(connectionString);
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Closed)
{
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Broken)
{
connection.Close();
connection.Open();
}
return connection;
}
}//對數據進行增刪改時候調用的
public static int ExecuteCommand(string sql)
{
SqlCommand cmd = new SqlCommand(sql,connection);
int resualt = cmd.ExecuteNonQuery();
return resualt;
}
}
}

㈡ C語言:建立一個學生信息資料庫

1)建立結構體及其10個元素的數組
struct Student{
int Num;
char Name[10];
char Sex;
double Score[5];
}student[10];
2)建立一個關於該結構的輸入函數,如:
void Input(struct Student stu)
{
printf("Input Name:");
scanf("%d",&stu.Num);
/*等等*/
}
3)建立一個關於該結構的輸出函數,如:
void Output(struct Student stu)
{
printf("NUMBER: %d\n",stu.Num);
/*等等*/
}

4)計算某門課的平均分
double Average(struct Student * stu,int course)
{
int i;
double ave=0.0;
for(i=0;i<10;i++)
ave+=stu[i].Score[course];
return ave/10;
}

最後用main函數把有關問題貫穿起來。

㈢ 怎麼用c#代碼在sql中建立新的資料庫

說簡單點吧:
首先導入命名空間:using System.Data.SqlClient;
然後定義2個對象:

//1 建立連接對象
SqlConnection con=new SqlConnection();

//2 連接字元串(這里連接的是本地資料庫,sa用戶登陸,無密碼)
con.ConnectionString="server=.;uid=sa;pwd=;";

//3 建立命令執行對象
SqlCommand cmd=new SqlCommand();

//4 給命令執行對象指定連接對象
cmd.Connection=con;

//5 SQL語句(指定要創建資料庫的SQL句)
cmd.CommandText="create database mydatabase";

//6 打開資料庫連接
con.Open();

//7 執行命令對象里的SQL語句
cmd.ExecuteNonQuery();

//8 執行完後關閉資料庫連接
con.Close();

這樣資料庫就建立好了,要建立自定義的資料庫就看你的SQL語句了。

㈣ 如何用C語言建立資料庫

用SQLITE吧,像ACCESS.你可以去www.sqlite.org那裡下載類庫.頭文件.以及管理工具.

㈤ 用C語言編寫資料庫管理系統的代碼 !!急求!!!

老兄,你在csdn、pudn上搜索下現成的吧。
你這個是大學的作業吧?日本有個開源的tokyo cabinet應該符合你的要求,而且遠遠超過,它本身就是NoSQL的資料庫……

㈥ c#用代碼建立資料庫

聯接可分為以下幾類:
內部聯接(典型的聯接運算,使用類似於 = 或 <> 的比較運算符)。內部聯接包括同等聯接和自然聯接。

內部聯接使用比較運算符根據每個表的通用列中的值匹配兩個表中的行。例如,檢索 students 和 courses 表中學生標識號相同的所有行。

外部聯接。外部聯接可以是左向外部聯接、右向外部聯接或完整外部聯接。

在 FROM 子句中可以用下列某一組關鍵字來指定外部聯接:

LEFT JOIN 或 LEFT OUTER JOIN。

左向外部聯接的結果集包括 LEFT OUTER 子句中指定的左表的所有行,而不僅僅是聯接列所匹配的行。如果左表的某一行在右表中沒有匹配行,則在關聯的結果集行中,來自右表的所有選擇列表列均為空值。

RIGHT JOIN 或 RIGHT OUTER JOIN

右向外部聯接是左向外部聯接的反向聯接。將返回右表的所有行。如果右表的某一行在左表中沒有匹配行,則將為左表返回空值。

FULL JOIN 或 FULL OUTER JOIN

完整外部聯接將返回左表和右表中的所有行。當某一行在另一個表中沒有匹配行時,另一個表的選擇列表列將包含空值。如果表之間有匹配行,則整個結果集行包含基表的數據值。

交叉聯接

交叉聯接將返回左表中的所有行。左表中的每一行均與右表中的所有行組合。交叉聯接也稱作笛卡爾積。

復習完里基礎就來看看下面的實際場景來練練手吧。
這是我工作中的實際遇到的場景,這里就使用上面的學生與課程表做個類比吧。

假設現在有幾個表,分別是:

學生信息表(student:student_id, student_name,......)、
課程表(courses:courses_id,courses_name,...... )、
還有學生選課表(student_elective_courses:student_id, courses_id)、
學生感興趣的課程表(student_interest_courses:student_id, courses_id)

現在的需求是:找出關注某個課程的學生關注的其他哪些課程。(這里的關注包括選了課及感興趣兩個概念)

程序化表達:通過某個courses_id可以在兩個關系表student_elective_courses、student_interest_courses中得到一些student_id,通過這些student_id又可以在兩個表中得到一些courses_id。要求是找出來之後還要按照課程的「人氣」排序(關注人數多的排前面,關注人數多一樣的時候選課人多的排前面)

舉個例子:對於課程「離散數學」,有些同學已經選了這門課在學了,有些同學還沒選,但是對這門課有興趣。當然兩類同學本身可能有選修了其他的課程或對其他的課程有興趣。我們就是想統計這些「其他」的課程。

這種類型的統計在商業上是很有必要挖掘的信息。例如某個網上書城,如果能在用戶瀏覽某本書的時候給出其他瀏覽或購買這本書的用戶還在瀏覽其他的一些什麼書籍,相信會很好的引導用戶瀏覽更多的書。當然銷售量也會跟著上去咯,因為「臭味相投」的人還是很多的。

回到原來的問題,這個問題的難點在於要統計的關注人數分布在兩個表中。分兩次查詢再合並結果也是可以的,就是比較麻煩。看看下面的解決腳本

SELECT
a.courses_id,
a.courses_name,
COUNT(DISTINCT b.student_id)+COUNT(DISTINCT c.student_id) as attentionCount,
COUNT(DISTINCT b.student_id) as interestCount

FROM student a LEFT JOIN
student_elective_courses b ON a.courses_id = b.courses_id LEFT JOIN
student_interest_courses c ON a.courses_id = c.courses_id LEFT JOIN
student_elective_courses b1 ON b.student_id = b1.student_id OR c.student_id = b1.student_id LEFT JOIN student_interest_courses c1 ON b.student_id = c1.student_id OR c.student_id = c1.student_id
WHERE (b1.courses_id = 1 OR c1.courses_id = 1) AND a.courses_id <> 1 --這里「1」是可變參數
GROUP BY a.courses_id,a.courses_name
HAVING COUNT(DISTINCT b.student_id)+COUNT(DISTINCT c.student_id) >0
ORDER BY attentionCount DESC, interestCount DESC, a.courses_id
分析說明:
看看關聯student_elective_courses b1 的條件:
b.student_id = b1.student_id OR c.student_id = b1.student_id
這個條件得到:選了某些課的學生(表b1)還選了哪些課(表b,條件b.student_id = b1.student_id)以及還關心了哪些課(表c,條件c.student_id = b1.student_id),關聯表c1也是同樣道理。最後加上個聚和就得到了想要的結果。

㈦ 怎麼用C語言結合數據結構的知識來實現資料庫的功能,代碼怎麼設計和編寫

用數據結構組織起來就是簡單的資料庫了,無非就是插入刪除修改之類的功能

你說的那些資料庫語句,可以用簡單的字元串匹配來做
如: strcmp 匹配"Create table"這個字元串 對接下來字元進行提取,直到"(" 以後的關鍵字元也是用類似方法判斷","等實現
提取了需要的關鍵字元之後就可以進行對應的傳參,調用相應操作

㈧ 怎樣用C語言編寫一個學生資料庫系統系統

這里有個現成的!拿去改改就行了!!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <windows.h>
#include <winbase.h>
typedef struct node{ /* 定義鏈表 */
char name[20]; /* 姓名 */
char address[40]; /* 地址 */
char phone[15]; /* 電話 */
long zip; /* 郵編 */
struct node *next;
}add_list;
struct person{ /* 定義一個結構備用 */
char name[20];
char address[50];
char phone[15];
long zip;
};
FILE *fp;
add_list *tail,*head; /* 定義鏈表尾節點指針和頭指針 */
/* 從文件中讀出數據生成通訊錄鏈表,如果文件不存在,生成空鏈表 */
add_list *load(char filename[])
{ add_list *new1,*head;
struct person t;
head=(add_list *)malloc(sizeof(add_list));
tail=head=NULL;
if((fp=fopen(filename,"rb"))==NULL)
return head;
else
if(!feof(fp))
if(fread(&t,sizeof(struct person),1,fp)==1)
{ new1=(add_list *)malloc(sizeof(add_list)); /* 連入鏈表第一個節點 */
strcpy(new1->name,t.name);
strcpy(new1->address,t.address);
strcpy(new1->phone,t.phone);
new1->zip=t.zip;
head=tail=new1;
new1->next=NULL;
while(!feof(fp)) /* 連入鏈表其餘節點 */
{ if(fread(&t,sizeof(struct person),1,fp)==1)
{ new1=(add_list *)malloc(sizeof(add_list));
strcpy(new1->name,t.name);
strcpy(new1->address,t.address);
strcpy(new1->phone,t.phone);
new1->zip=t.zip;

tail->next=new1;
new1->next=NULL;
tail=new1;
}
}
}
fclose(fp);
return head;
}
/* 自定義函數,進度條 */

void jintiao(void)
{ int i;
for(i=0;i<78;i++) putchar('.');
printf("\r\a");
for(i=0;i<78;i++)
{
if(i==0) putchar('|');
Sleep(100);
printf("\b|>");
}
}
/* 插入一條通訊錄記錄 */
void insert(add_list **head)
{ add_list * new1;
new1=(add_list *)malloc(sizeof(add_list));
system("cls");
printf("\n請輸入姓名:"); getchar();gets(new1->name);
printf("\n請輸入地址:"); scanf("%s",new1->address);
printf("\n請輸入電話:"); scanf("%s",new1->phone);
printf("\n請輸入郵編:"); scanf("%ld",&new1->zip);
if(*head==NULL) /* 表頭為空時 */
{ *head=new1;
new1->next=NULL;
tail=new1;
}
else /* 插入到表尾 */
{ tail->next=new1;
new1->next=NULL;
tail=new1;
}
printf("輸入完成,按回車鍵返回......");
getchar();
getchar();
}
/* 將通訊錄鏈表中的內容保存到指定文件中 */
void save(add_list *head,char filename[])
{ add_list *p;
struct person t;
if((fp=fopen(filename,"wb"))==NULL)
{ printf("錯誤:不能打開文件%s\n",filename);
exit(1);
}
else
{ p=head;
while(p!=NULL)
{ strcpy(t.name,p->name);
strcpy(t.address,p->address);
strcpy(t.phone,p->phone);
t.zip=p->zip;
fwrite(&t,sizeof(struct person),1,fp);
p=p->next;
}
}
fclose(fp);
printf("保存成功,按回車鍵返回......");
getchar();getchar();
}
/* 顯示通訊錄內容 */
void display(add_list *head)
{ add_list *p;
p=head;
if(p!=NULL)
printf("姓名:\t\t住址:\t\t郵編:\t\t電話:\n");
while(p!=NULL)
{
printf("%s\t\t%s\t\t%ld\t\t%s\n",p->name,p->address,p->zip,p->phone);
p=p->next;
}
printf("按回車鍵返回......");
getchar();getchar();
}
/* 按姓名查詢通訊錄記錄 */
int search(add_list *head)
{ add_list *p;
char name[20];
int flag=0;
printf("請輸入要查找的人的姓名:");
getchar();
gets(name);
p=head;
while(p!=NULL)
{ if(strcmp(name,p->name)==0)
{ printf("姓名:\t\t住址:\t\t郵編:\t\t電話:\n");
printf("%s\t\t%s\t\t%ld\t\t%s\n",p->name,p->address,p->zip,p->phone);
flag=1;
}
p=p->next;
}
return flag;
}
/* 按姓名刪除一條通訊錄記錄 */
int delete1(add_list **head)
{ add_list *p,*q,*t;
char name[20],c;
int flag=0;
printf("請輸入要刪除人的姓名:");
scanf("%s",name);
q=p=*head;
while(p!=NULL)
{ if(strcmp(name,p->name)==0) /* 找到要刪除的人 */
{ printf("姓名:\t\t住址:\t\t郵編:\t\t電話:\n");
printf("%s\t\t%s\t\t%ld\t\t%s\n",p->name,p->address,p->zip,p->phone);
printf("真的要刪除嗎?(Y:是,N:否)\n"); /* 徵求意見(刪&不刪) */
getchar();c=getchar();
if(c=='y'||c=='Y') /* 刪除 */
{ if(p==*head)
*head=p->next;
else
q->next=p->next;
t=p;
p=p->next;
free(t);
flag=1;
}
else /* 不刪,跳過 */
{ q=p;
p=p->next;
flag=1;
}
}
else /* 沒找到,繼續 */
{ q=p;
p=p->next;
}
}
return flag;
printf("按回車鍵返回......");
getchar();
}
/* 顯示菜單並選擇菜單項 */
int menu_select()
{ char c;
system("cls");
printf("\t\t********************通訊錄********************\n");
printf("\t\t\t 1:輸入新的通訊記錄\n");
printf("\t\t\t\t 2:刪除記錄\n");
printf("\t\t\t\t 3:查找\n");
printf("\t\t\t\t 4:保存文件\n");
printf("\t\t\t 5:瀏覽所有通訊記錄\n");
printf("\t\t\t\t 6:退出\n");
do{
printf("請輸入你的選擇(1~~6):");
c=getchar();
}while(c<'1'||c>'6');
return c;
}
/* 主函數 */
int main(void)
{ char filename[20];
char c;
int t;
printf("\n\n\n\n\n\n\t\t\t\t通訊錄啟動中...\n\n\n\n\n\n\n\n\n\n\n\n\n");
jintiao();
system("cls");
printf("請輸入通訊錄文件名稱:\n");
scanf("%s",filename);
getchar();
head=load(filename);
while(1)
{ c=menu_select();
switch(c)
{ case '1': insert(&head); break;
case '2': t=delete1(&head);
if(!t) printf("記錯了吧,沒這人!\n按回車鍵返回......"); getchar();getchar(); break;
case '3': t=search(head);
if(!t) printf("天啊!居然沒找到!\n按回車鍵返回......");getchar(); break;
case '4': save(head,filename); break;
case '5': display(head); break;
case '6': exit(0);
}
}
}

㈨ 創建資料庫 完整語句

用如下語句:

createdatabasestuDB
onprimary--默認就屬於primary文件組,可省略
(
/*--數據文件的具體描述--*/
name='stuDB_data',--主數據文件的邏輯名稱
filename='D:stuDB_data.mdf',--主數據文件的物理名稱
size=5mb,--主數據文件的初始大小
maxsize=100mb,--主數據文件增長的最大值
filegrowth=15%--主數據文件的增長率
)
logon
(
/*--日誌文件的具體描述,各參數含義同上--*/
name='stuDB_log',
filename='D:stuDB_log.ldf',
size=2mb,
filegrowth=1mb
)

注意:路徑和文件名等可以自己定義,而且所使用的路徑必須要先建立,否則執行語句會報錯。

㈩ 怎麼用c#代碼在sql中建立新的資料庫

首先,我們在程序中動態地創建SQL Server資料庫。
我們將資料庫創建在C:\mysql目錄下,所以讀者要練習該實例的話得先在C:下創建一個名為mysql的文件夾,否則會出錯!創建資料庫的關鍵是函數中的sql對象,通過該對象我們指定了資料庫文件的一些基本屬性。之後,我們新創建了一個SqlCommand對象,通過該對象我們 就實際完成了對資料庫的操作。函數的實現如下:
private void button1_Click(object sender, System.EventArgs e)
{
// 打開資料庫連接
if( conn.State != ConnectionState.Open)
conn.Open();
string sql = "CREATE DATABASE mydb ON PRIMARY"
+"(name=test_data, filename = 'C:\\mysql\\mydb_data.mdf', size=3,"
+"maxsize=5, filegrowth=10%) log on"
+"(name=mydbb_log, filename='C:\\mysql\\mydb_log.ldf',size=3,"
+"maxsize=20,filegrowth=1)";
cmd = new SqlCommand(sql, conn);
try { cmd.ExecuteNonQuery(); }
catch(SqlException ae)
{
MessageBox.Show(ae.Message.ToString());
}
}
其次,我們通過CREATE TABLE語句創建基本表,並向該表中添加4條數據。函數的實現如下:
private void button2_Click(object sender, System.EventArgs e)
{
// 打開資料庫連接
if( conn.State == ConnectionState.Open)
conn.Close();
ConnectionString ="Integrated Security=SSPI;" + "Initial Catalog=mydb;" + "Data Source=localhost;";
conn.ConnectionString = ConnectionString;
conn.Open();
sql = "CREATE TABLE myTable"+ "(myId INTEGER CONSTRAINT PKeyMyId PRIMARY KEY,"
+ "myName CHAR(50), myAddress CHAR(255), myBalance FLOAT)";
cmd = new SqlCommand(sql, conn);
try {
cmd.ExecuteNonQuery(); // 向表中添加記錄
sql = "INSERT INTO myTable(myId, myName, myAddress, myBalance) "+ "VALUES (1001, 'Puneet Nehra', 'A 449 Sect 19, DELHI', 23.98 ) " ;
cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
sql = "INSERT INTO myTable(myId, myName,myAddress, myBalance) "+ "VALUES (1002, 'Anoop Singh', 'Lodi Road, DELHI', 353.64) " ;
cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
sql = "INSERT INTO myTable(myId, myName, myAddress, myBalance) "+ "VALUES (1003, 'Rakesh M', 'Nag Chowk, Jabalpur M.P.', 43.43) " ;
cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
sql = "INSERT INTO myTable(myId, myName, myAddress, myBalance) "+ "VALUES (1004, 'Madan Kesh', '4th Street, Lane 3, DELHI', 23.00) " ;
cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery(); }
catch(SqlException ae) { MessageBox.Show(ae.Message.ToString()); }
}
完成此操作後,我們可以打開SQL SERVER的企業管理器,查看是否有我們創建的資料庫和基本表。

熱點內容
我的世界極致畫質光影什麼配置 發布:2024-11-16 01:15:13 瀏覽:494
子賬號的密碼是多少 發布:2024-11-16 01:12:41 瀏覽:818
反編譯後不能打開工程 發布:2024-11-16 01:05:29 瀏覽:773
酷狗緩存文件在哪裡 發布:2024-11-16 00:57:43 瀏覽:150
升級鴻蒙後怎麼刪除安卓 發布:2024-11-16 00:54:26 瀏覽:881
亞馬遜上傳工具 發布:2024-11-16 00:49:10 瀏覽:354
頭腦王者源碼 發布:2024-11-16 00:47:28 瀏覽:348
如何刷出純凈的安卓 發布:2024-11-16 00:35:41 瀏覽:378
sqlinsertupdate 發布:2024-11-16 00:34:45 瀏覽:124
金士頓新版存儲卡好不好 發布:2024-11-16 00:34:35 瀏覽:888