读书人

C# 写下Access两段代码有舍呢么实质

发布时间: 2013-06-25 23:45:42 作者: rapoo

C# 写入Access,两段代码有舍呢么实质性的不同?【找不同】
麻烦大家来帮我看看,下面两段代码有什么实质性的不同,就是在语言实现上。

我不是指的单词不一样啊。。。那个泰坑爹了。。。


为什么第一段的代码可以写进Adjustment数据库中的ClosedLeveling表,
而第二段的代码却不可以写进Adjustment数据库中的ClosedTraverse表中去呢???

更奇怪的是两段代码都往CommonField中写入,都是成功的。。。

单步调试,并没有发现第二段代码异常,该取到的字段和数值都取到了。。。。。。。。。
难道是因为第二段代码写入的列太多??????
C#不行?Access不支持???

在线等大师~~~


case 0: //闭合水准
{
//连接access数据库
OleDbConnection dbConn = new OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0 ; Data Source = Adjustment.accdb;");
if (dbConn.State != ConnectionState.Open) dbConn.Open();
else MessageBox.Show("数据库已经被其他程序占用,请关闭先。");

OleDbCommand cmd = new OleDbCommand("DELETE from ClosedLeveling", dbConn); //首先清空表里面的数据
cmd.ExecuteNonQuery();
OleDbCommand cmd1 = new OleDbCommand("DELETE from CommonFields", dbConn);
cmd1.ExecuteNonQuery();

string strfh = textBox1.Text;
string strfr = textBox2.Text;
string strSumLength = textBox6.Text;
try
{
string cmdString = "INSERT INTO CommonFields([ID],[fh],[fr],[SumLength],[ProjectName],[MyGrade],[Calculator],[Checker]) VALUES('1','" + strfh + "','" + strfr + "','" + strSumLength + "','" + strProjectName + "','" + strMyGrade + "','" + strCalculator + "','" + strChecker + "')";

cmd1 = new OleDbCommand();


cmd1.Connection = dbConn;
cmd1.CommandText = cmdString;
cmd1.ExecuteNonQuery();
}
catch (Exception Ex)
{ }

foreach (ListViewItem lvi in AdjustListView.Items)
{
//int nID = Convert.ToInt16(lvi.SubItems[0].Text);
//string strPTName = lvi.SubItems[1].Text;
//double dDist = Convert.ToDouble(lvi.SubItems[2].Text);
//int nStations = Convert.ToInt16(lvi.SubItems[3].Text);
//double dObsLevelDiff = Convert.ToDouble(lvi.SubItems[4].Text);
//int nAdjust = Convert.ToInt16(lvi.SubItems[5].Text);
//double dAdjustLevelDiff = Convert.ToDouble(lvi.SubItems[6].Text);
//double dHeight = Convert.ToDouble(lvi.SubItems[7].Text);

string strID = lvi.SubItems[0].Text;
string strPTName = lvi.SubItems[1].Text;
string strDist = lvi.SubItems[2].Text;


string strStations = lvi.SubItems[3].Text;
string strObsLevelDiff = lvi.SubItems[4].Text;
string strAdjust = lvi.SubItems[5].Text;
string strAdjustLevelDiff = lvi.SubItems[6].Text;
string strHeight = lvi.SubItems[7].Text;

try
{
//string cmdString = "INSERT INTO ClosedLeveling([ID],[PTName],[Dist],[Stations],[ObsLevelDiff],[Adjust],[AdjustLevelDiff],[Height]) VALUES('" + nID + "','" + strPTName + "','" + dDist + "','" + nStations + "','" + dObsLevelDiff + "','" + nAdjust + "','" + dAdjustLevelDiff + "','" + dHeight + "')";
string cmdString = "INSERT INTO ClosedLeveling([ID],[PTName],[Dist],[Stations],[ObsLevelDiff],[Adjust],[AdjustLevelDiff],[Height]) VALUES('" + strID + "','" + strPTName + "','" + strDist + "','" + strStations + "','" + strObsLevelDiff + "','" + strAdjust + "','" + strAdjustLevelDiff + "','" + strHeight + "')";

cmd = new OleDbCommand();
cmd.Connection = dbConn;
cmd.CommandText = cmdString;
cmd.ExecuteNonQuery();
}
catch (Exception Ex)


{ }
cmd.Dispose();
}
//关闭数据库的连接
dbConn.Close();
dbConn.Dispose();
}
break;





case 3: //闭合导线
{
//连接access数据库
OleDbConnection dbConn = new OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0 ; Data Source = Adjustment.accdb;");
if (dbConn.State != ConnectionState.Open) dbConn.Open();
else MessageBox.Show("数据库已经被其他程序占用,请关闭先。");

OleDbCommand cmd = new OleDbCommand("DELETE FROM [ClosedTraverse]", dbConn); //首先清空表里面的数据
cmd.ExecuteNonQuery();
OleDbCommand cmd1 = new OleDbCommand("DELETE FROM CommonFields", dbConn);
cmd1.ExecuteNonQuery();

string strfb = textBox5.Text;
string strfr = textBox2.Text;
string strfx = textBox3.Text;
string strfy = textBox7.Text;


string strf = textBox4.Text;
string strK = textBox8.Text;
string strSumLength = textBox6.Text;
try
{
string cmdString = "INSERT INTO CommonFields([ID],[fr],[fb],[SumLength],[fx],[fy],[f],[K],[ProjectName],[MyGrade],[Calculator],[Checker]) VALUES('1','" + strfr + "','" + strfb + "','" + strSumLength + "','" + strfx + "','" + strfy + "','" + strf + "','" + strK + "','" + strProjectName + "','" + strMyGrade + "','" + strCalculator + "','" + strChecker + "')";

cmd1 = new OleDbCommand();
cmd1.Connection = dbConn;
cmd1.CommandText = cmdString;
cmd1.ExecuteNonQuery();
}
catch (Exception Ex)
{ }
cmd1.Dispose();
foreach (ListViewItem lvi in AdjustListView.Items)
{
string strID = lvi.SubItems[0].Text;
string strStation = lvi.SubItems[1].Text;
string strObsAngle = lvi.SubItems[2].Text;


string strAdjust = lvi.SubItems[3].Text;
string strAdjObsAngle = lvi.SubItems[4].Text;
string strAzimuth = lvi.SubItems[5].Text;
string strLength = lvi.SubItems[6].Text;
string strDeltaX = lvi.SubItems[7].Text;
string strDeltaY = lvi.SubItems[8].Text;
string strAdjDeltaX = lvi.SubItems[9].Text;
string strAdjDeltaY = lvi.SubItems[10].Text;
string strCoorX = lvi.SubItems[11].Text;
string strCoorY = lvi.SubItems[12].Text;

try
{
string cmdString = "INSERT INTO ClosedTraverse([ID],[Station],[ObsAngle],[Adjust],[AdjObsAngle],[Azimuth],[Length],[DeltaX],[DeltaY],[AdjDeltaX],[AdjDeltaX],[CoorX],[CoorY]) VALUES('" + strID + "','" + strStation + "','" + strObsAngle + "','" + strAdjust + "','" + strAdjObsAngle + "','" + strAzimuth + "','" + strLength + "','" + strDeltaX + "','" + strDeltaY + "','" + strAdjDeltaX + "','" + strAdjDeltaY + "','" + strCoorX + "','" + strCoorY + "')";
//string cmdString = "INSERT INTO [ClosedTraverse]([ID],[Station],[ObsAngle],[Adjust],[AdjObsAngle],[Azimuth],[Length],[DeltaX],[DeltaY],[AdjDeltaX],[AdjDeltaX],[CoorX],[CoorY]) VALUES('1','1','5','5','0','10','55','54',57','5','6','3','12')";

cmd = new OleDbCommand();


cmd.Connection = dbConn;
cmd.CommandText = cmdString;
cmd.ExecuteNonQuery();
}
catch (Exception Ex)
{ }
cmd.Dispose();
}
//关闭数据库的连接
dbConn.Close();
dbConn.Dispose();
}
break;


[解决办法]
sql不一样,操作的不是一个表。字段、类型等等是否正确。

C#支持换行啊,比如
string s = "a" +
"b" + x +
"c";

读书人网 >C#

热点推荐