C#中怎么样通过语句实现向 SQL 新建的空表中添加数据??我的代码如下,添加的时候出现 在位置0处没有任何

我的 添加窗口如下,代码是
private void button1_Click(object sender, EventArgs e)
{
try
{
string kind = "";
float d = 0.0f;
if (radioButton1.Checked == true)
{ kind = "收入"; }
else
{ kind = "支出"; }
float Loan = new float();
string amount = textBox1.Text.Trim();
string people = textBox2.Text.Trim();
string place = textBox3.Text.Trim();
string explain = textBox4.Text.Trim();
SqlConnection con1 = new SqlConnection();
con1.ConnectionString = "server=PC2010082202NSK\\SQLEXPRESS;initial catalog=FamilyFinance;Integrated Security = SSPI;";
SqlCommand cmd1 = new SqlCommand("select * from FinanceList order by HappenTime", con1);
SqlDataAdapter sda1 = new SqlDataAdapter();
sda1.SelectCommand = cmd1;
DataSet ds1 = new DataSet();
sda1.Fill(ds1, "FL");
// if (ds1.Tables["FL"].Rows[0][0] == null)
//Loan = 0.0f;
Loan = float.Parse(ds1.Tables["FL"].Rows[0][7].ToString()) - float.Parse(ds1.Tables["FL"].Rows[0][3].ToString());
cmd1.CommandText = "insert into FinanceList(ItemKind,HappenTime,Amount,Transactor,FinanceObject,BriefExplain,FamilyAmount) values(\'" + kind + "\',\'" + dateTimePicker1.Text + "\'," + amount + ",\'" + people + "\',\'" + place + "\',\'" + explain + "\',0)";
sda1.InsertCommand = cmd1;
sda1.Fill(ds1, "FL");
con1.Close();
SqlDataAdapter sda2 = new SqlDataAdapter("select * from FinanceList order by HappenTime", con1);
SqlCommandBuilder cmb = new SqlCommandBuilder(sda2);
DataSet ds2 = new DataSet();
sda2.Fill(ds2, "FL");
con1.Close();
DataTable dt = new DataTable();
dt = ds2.Tables["FL"].Copy();
ds2.Tables["FL"].Rows.Clear();
for (int i = 0; i <= dt.Rows.Count - 1; i++)
{
if (dt.Rows[i][1].ToString() == "收入")
d = 1.0f;
else
d = -1.0f;
dt.Rows[i][7] = Loan + float.Parse(dt.Rows[i][3].ToString()) * d;
Loan = float.Parse(dt.Rows[i][7].ToString());
}
for (int i = 0; i <= dt.Rows.Count - 1; i++)
{ ds2.Tables["FL"].ImportRow(dt.Rows[i]); }
sda2.Update(ds2, "FL");
MessageBox.Show("记帐成功!");
this.Dispose();
}
catch (Exception e2)
{
MessageBox.Show(e2 .Message );
}
}表
表的格式是这个ItemNum int IDENTITY(1,1) NOT NULL,ItemKind nchar(10) NOT NULL,HappenTime datetime NOT NULL,Amount float NOT NULL,Transactor text NOT NULL,FinanceObject nvarchar(50) NULL,BriefExplain nvarchar(200) NULL,FamilyAmount float NOT NULL,
其中ItemNum是设置自动增长的,我想把他设置程主键,不知道怎么在C#通过语句实现,最关键的问题就是现在添加不了数据。总是提示C#中怎么样通过语句实现向 SQL 新建的空表中添加数据??我的代码如下,添加的时候出现 在位置0处没有任何行。当数据表有一行数据时,可以正常添加。其中两个注释语句我是这样想的::如果ds1.Tables["FL"].Rows[0][0] == null,我就把LOAN设置成0;可是还是不行,,,跪求高手指点!!!

第1个回答  2011-08-17
ItemNum 这个是自增列 ,不需要手动插入数据
ItemKind
HappenTime
Amount
Transactor
FinanceObject
BriefExplain
FamilyAmount 这些是你的字段是吧?分别是代表什么?我这里就举例说明了。
剩下需要插入值的字段就还有ItemKind HappenTime Amount Transactor FinanceObject BriefExplain
这几个字段我不知道你分别用来存放什么的,我就打比方了。你先获取你文本框和单选框的值能获取吧?比如值分别获取成变量 a b c d e f
声明一个字符串变量来写sql语句
insert into table (ItemKind ,HappenTime , Amount Transactor ,FinanceObject,BriefExplain
) values (a,b,c,d,e,f)其中table代表表名 每个值相对应。比如a变量为类型的值,你ItemKind 又代表是类型的字段就把a写的跟它相对应, (这里)values(对应这里)
做好这个工作之后就是你的
SqlDataAdapter sda2 = new SqlDataAdapter("select * from FinanceList order by HappenTime", con1);
SqlCommand cmd1 = new SqlCommand("我们上面写的SQL语句", con1);
然后执行下就对了追问

这个我没问题,只是现在有一个表FinanceList,当里面有一行数据的时候,添加的时候是没问题的,我已经试过了。关键现在的FinanceList表里面没有数据,是NULL,我通过这个程序向FinanceList里面添加的时候就会出现 在位置0处没有任何行,我不知道怎么解决这个问题。

追答

你是添加数据,不是查询数据。怎么会有什么0行提示。 SqlDataAdapter sda2 = new SqlDataAdapter("select * from FinanceList order by HappenTime", con1);
你是添加语句,你弄了个查询在里面。我不知道是干什么。

第2个回答  2011-08-17
如果表是空的,那 Loan = float.Parse(ds1.Tables["FL"].Rows[0][7].ToString()) - float.Parse(ds1.Tables["FL"].Rows[0][3].ToString()); 就会报在位置0处没有任何行。
第3个回答  2011-08-17
创建个内存表 DataTable 吧!
第4个回答  2011-08-17
buzhidao

向sql表中插入一条记录的C#代码
string sql= "insert into users(Name,Age,Sex,Pwd)values (@myName,@myAge,@mySex,@myPwd)";SqlCommand cmd=new SqlCommand(sql,conn);\/\/conn请自行给出 cmd.Parameters.Add( "@myName",SqlDBType.*);\/\/各数据类型请自行给出 cmd.Parameters.Add( "@myAge",SqlDBType.*);\/\/...

如何用C#代码向数据库表中添加字段
用C# 直接执行一段SQL命令:alert table Admin Name varchar(100)和在查询分析器里添加一个字段一样

C#如何向sql读入和写入数据
亲,步骤(现在针对的是SQLServer数据库,具体自己改一下,方法一样)使用SqlConnection con=SqlConnection("数据库连接字符串");创建命令SqlCommand cmd=new SqlCommand(con);指定Sql语句cmd.CommandText="sql语句";con.Open();打开数据库连接 cmd.ExcuteNoQuery();执行Sql命令 con.Close();关闭数据库连接...

C#怎么实现对SQL数据库增删改查
string strSql = "insert 表名 (列名,列名,列名,列名)"+" values ('{0}',{1},'{2}','{3}')";strSql = string.Format(strSql, 文本框插入值,文本框插入值, 文本框插入值, 文本框插入值);try { \/\/创建 Command 对象 SqlCommand comm = new SqlCommand(strSql, conn);\/\/打开连接 c...

c#向数据库插入数据的各种方法
1、首先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的是GUID,如图所示。2、可以选择一条一条插入方式。输入命令:【INSERT INTO Product(Id,Name,Price) VALUES(newid(),'牛栏1段',160);】即可。3、可以选择insert bulk命令。输入命令:【 BULK INSERT [ [ 'database_name'...

请问c#如何调用数据库中的数据(具体的代码实现)以及sql中要做如何设置...
sql中只要建立表即可,无需进行其他设置 在web.config中设置数据库连接字符串 <appSettings> <add key="SqlConn" value="Server=服务器IP;DataBase=数据库名;UID=用户名;PWD=密码;"\/> <\/appSettings> 2.在登录页面登录按钮代码中加入语句 protected void LogButton_Click(object sender, EventArgs e)...

C# 中参数化拼接SQL语句插入数据库
三个步骤:第一步:声明数据库连接对象:Sqlconnection connection=new Sqlconnection(ConnectionString);第二步:声明数据库操作对象:两种途径:直接以字符串拼接的方式形成sql语句,比如:sqlstr="insert into usertab(uid,pwd) values('"+uidtxt+"','"+pwdtxt+"')";SqlCommand command = new SqlCommand(...

在C#中执行Sql语句建表
connstr = "server=127.0.0.1;database=Northwind;uid=sa;pwd=123";创建连接对象 conn = new SqlConnection(connstr);} private void button1_Click(object sender, System.EventArgs e){ \/\/定义表名 string tableName=this.textBox1.Text;\/\/添加表语句 string add_table="create table " + ...

C#winform如何通过Datagridview向数据库增加数据
tring constr = "server=.;database=School;uid=123;pwd=123;";SqlConnection conn = new SqlConnection(constr);\/\/创建数据库连接conn.Open();\/\/打开连接\/\/往表 Tittle里插入指定内容。string str = string.Format("insert into Tittle (name,sex,age,birthday) values ('{0}','{1}','{2...

50分求救。c# 用sql语句向sqlsever 数据库中使用插入语句,没有报错但是...
数据库没在bin目录下,所以没更新,这时候你的数据库被复制到bin下一份,你每次都搞这个,当然看不见更新了

相似回答
大家正在搜