C ado.net无法将值null插入列中
C++ ADO.NET Cannot insert the value NULL into column
我正在尝试在数据库中插入一些行,但是执行此代码时会出现错误:
#using <mscorlib.dll>
#using <System.dll>
#using <system.data.dll>
#using <System.Xml.dll>
#include <sstream>
#include <time.h>
#include <string>
#include <iostream>
#include <tchar.h>
using namespace System;
using namespace System::Data;
using namespace System::Xml;
using namespace System::Data::SqlClient;
// This is the entry point for this application
int _tmain(void)
{
SqlConnection ^ mySQLConnection;
SqlDataAdapter ^ myDataAdapter;
DataSet ^ myDataSet;
DataRow ^ myRow;
SqlParameter ^ myParameter;
try
{
mySQLConnection = gcnew SqlConnection("Data Source=NECTARYS-PC;Initial Catalog=MonitoringN;Integrated Security=True;");
myDataAdapter = gcnew SqlDataAdapter();
myDataSet = gcnew DataSet();
// Open up the connection
mySQLConnection->Open();
myDataAdapter->SelectCommand = gcnew SqlCommand("select motif,dateAlerte,fixee,nomPoste," +
"nomApplication,nomFichier,FichierModel_id from Alerte", mySQLConnection);
myDataAdapter->InsertCommand = gcnew SqlCommand("insert into Alerte (motif,dateAlerte," +
"fixee,nomPoste,nomApplication,nomFichier,FichierModel_id) values (@motif,@dateAlerte," +
"@fixee,@nomPoste,@nomApplication,@nomFichier,@FichierModel_id)", mySQLConnection);
myParameter = myDataAdapter->InsertCommand->Parameters->Add(
gcnew SqlParameter("@motif", SqlDbType::VarChar));
myParameter->SourceColumn = "motif";
myParameter->SourceVersion = DataRowVersion::Current;
myParameter = myDataAdapter->InsertCommand->Parameters->Add(
gcnew SqlParameter("@dateAlerte", SqlDbType::VarChar));
myParameter->SourceColumn = "dateAlerte";
myParameter->SourceVersion = DataRowVersion::Current;
myParameter = myDataAdapter->InsertCommand->Parameters->Add(
gcnew SqlParameter("@fixee", SqlDbType::Bit));
myParameter->SourceColumn = "fixee";
myParameter->SourceVersion = DataRowVersion::Current;
myParameter = myDataAdapter->InsertCommand->Parameters->Add(
gcnew SqlParameter("@nomPoste", SqlDbType::VarChar));
myParameter->SourceColumn = "nomPoste";
myParameter->SourceVersion = DataRowVersion::Current;
myParameter = myDataAdapter->InsertCommand->Parameters->Add(
gcnew SqlParameter("@nomApplication", SqlDbType::VarChar));
myParameter->SourceColumn = "nomApplication";
myParameter->SourceVersion = DataRowVersion::Current;
myParameter = myDataAdapter->InsertCommand->Parameters->Add(
gcnew SqlParameter("@nomFichier", SqlDbType::VarChar));
myParameter->SourceColumn = "nomFichier";
myParameter->SourceVersion = DataRowVersion::Current;
myParameter = myDataAdapter->InsertCommand->Parameters->Add(
gcnew SqlParameter("@FichierModel_id", SqlDbType::Int));
myParameter->SourceColumn = "FichierModel_id";
myParameter->SourceVersion = DataRowVersion::Current;
time_t now = time(0);
tm ltm;
localtime_s(<m,&now);
std::stringstream dateAjoutSysteme;
dateAjoutSysteme << ltm.tm_mday
<< "/"
<< 1 + ltm.tm_mon
<< "/"
<< 1900 + ltm.tm_year
<< " "
<< 1 + ltm.tm_hour
<< ":"
<< 1 + ltm.tm_min
<< ":"
<< 1 + ltm.tm_sec;
String^ str = gcnew System::String(dateAjoutSysteme.str().c_str());
Boolean fixee = true;
myDataAdapter->Fill(myDataSet, "Alerte");
myRow = myDataSet->Tables["Alerte"]->NewRow();
myRow->ItemArray[0] = "A";
myRow->ItemArray[1] = str;
myRow->ItemArray[2] = fixee;
myRow->ItemArray[3] = "B";
myRow->ItemArray[4] = "C";
myRow->ItemArray[5] = "D";
myRow->ItemArray[6] = 0UL;
myDataSet->Tables["Alerte"]->Rows->Add(myRow);
//we use insertcommand property for the update.
myDataAdapter->Update(myDataSet, "Alerte");
}
catch (Exception ^ e) {
Console::Write(e->ToString());
}
__finally {
mySQLConnection->Close();
system("PAUSE");
}
return 0;
}
错误:
system.data.sqlclient.sqlexception(0x80131904):无法插入 值null列为" Fixee"列,表'Monitoringn.dbo.Alerte'; 列不允许nulls。
有什么好主意?
您在Alerte上进行选择 * ...因此您不知道列的顺序...然后由于列索引分配值问题... fixee可能不是mydataset->表[" alerte"]
相关文章:
- 无法在我的链接列表中插入项目,head始终为NULL
- 具有 4 个指针的节点的递归插入函数返回 null
- 在动态分配的二维矩阵中插入新列
- 如何在不同的列中插入随机数量的值? 查询.C++.SQlite 数据库
- 在文本文件的某些行和列上插入值
- 有效地将列/行插入到就地存储在行/列主向量的矩阵中
- C ado.net无法将值null插入列中
- 使用libpqxx库插入null/空字符串
- 从C++应用程序向SQL表中的整数列发送null值
- 散列映射快速插入但检索缓慢
- 在Cassandra中插入多列
- ORA-24347:聚合函数中出现NULL列的警告
- 如何使用 ODBC API 将数据更新插入到 NVARCHAR 列中
- QWidget::insertAction尝试在运行时插入null操作
- C++:为链表实现插入函数,prev_ptr最终为NULL
- 如果列结果为Null,则C++SQLite停止错误
- Pro*C代码处理以解决ORA-01405:提取的列值为NULL
- 正在插入Trie,NULL指针
- 如果存在插入/删除/重新散列操作,则unordered_map复制/释放包含的对象
- C++ Stl 矢量插入空 (NULL) 节点