当我运行代码显示错误 [英] When I run the code shows error
问题描述
string connectionString = ConfigurationManager.ConnectionStrings [ OneTransportConnectionString跨度>]的ConnectionString。
SqlConnection sqlConnection = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand();
SqlDataReader阅读器;
cmd.CommandText = 选择DISTINCT date_TripDate AS TripDate,traveltype.varchar_TravelTypeCode AS TripType,contactss .Value为Mobilenumber time_TripTime AS ShiftTime,trip.int_VehicleTripID为RequestID,;
cmd.CommandText = cmd + varchar_TravelerID AS AssociateID,(Associate_FirstName + Associate_LastName)AS AssociateName,Gender AS性别,varchar_ProjectId AS ProjectID,varchar_ProjectName AS ProjectName,;
cmd.CommandText = cmd + city.varchar_CityName AS City,placeee.varchar_PlaceName AS SourceArea,place.varchar_PlaceName AS DestinationArea,varchar_StatusDescription As Status,reason.varchar_ReasonDescription AS AppType,;
cmd.CommandText = cmd + 来自[OneC_988]。[dbo]。[988_Details_VehicleRequest] request< /跨度>;
cmd.CommandText = cmd + 加入[OneC_988]。[dbo]。[988_Details_VehicleTrip]行程请求.int_VehicleRequestID = trip.int_VehicleRequestID跨度>;
cmd.CommandText = cmd + 和int_CityID ='8';
cmd.CommandText = cmd + 加入[OneC_988]。[dbo]。[988_Details_TripSheet]旅行表.int_VehicleTripID = sheet.int_VehicleTripID跨度>;
cmd.CommandText = cmd + join [CentralRepository]。[dbo]。[vw_CentralRepository_Associate_Details] AD on trip .varchar_TravelerID = AD.Associate_ID跨度>;
cmd.CommandText = cmd + left join [CentralRepository]。[dbo]。[vw_CentralRepository_Contacts] contactss on contactss.Associate_ID = trip.varchar_TravelerID和contactss.Contact_Type ='MBL1';
cmd.CommandText = cmd + 加入[OneC_988]。[dbo]。[988_Master_Place]到位.int_PlaceID = trip.int_TripDestinationID跨度>;
cmd.CommandText = cmd + 加入[OneC_988]。[dbo]。[988_Master_Place] placeee on placeee .int_PlaceID = trip.int_TripSourceID跨度>;
cmd.CommandText = cmd + join [988_Master_City] city on request.int_CityID = city.int_CityID< /跨度>;
cmd.CommandText = cmd + 加入[OneC_988]。[dbo]。[988_Master_TravelType] traveltype on traveltype .int_TravelTypeID = trip.int_TravelTypeID跨度>;
cmd.CommandText = cmd + 加入[OneC_988]。[dbo]。[988_Master_Reason]理由上的原因.int_ReasonID = request.int_ReasonID跨度>;
cmd.CommandText = cmd + 加入[OneC_988]。[dbo]。[988_Master_Status]状态.int_StatusID = trip.int_TripStatusID跨度>;
cmd.CommandText = cmd + 其中date_TripDate ='2016-08-24'和trip.int_TripStatusID not在(0);
cmd.CommandType = CommandType.Text;
cmd.Connection = sqlConnection;
sqlConnection.Open();
reader = cmd.ExecuteReader();
Console.WriteLine( test);
sqlConnection.Close();
当我运行以上显示错误时如下
'='附近的语法不正确。
以上错误显示如下以下
reader = cmd.ExecuteReader();
请帮帮我以上查询中的错误
我尝试了什么:
当我运行代码时显示错误如下
'='附近的语法不正确。
如评论中所述,这是一个非常简单的问题,需要自行修复。完成后运行代码并查看cmd.CommandText中的内容。然后你甚至可以将sql复制到Sql Management Studio中进入一个新的查询窗口并快速找到语法错误。
我还建议你把它改成一个存储过程然后只需调用存储过程。这是一个更清洁的做事方式,你也避免了这个特殊问题,试图建立这样的字符串。
尝试使用
cmd.CommandText + = 更多SQL语句;
比
cmd.CommandText = cmd + 更多SQL语句;
您还必须在空格前加上附加语句的前缀附加它们时。打印出cmd.CommandText
进行检查时,您会认识到这一点。
这是一个错误
来自[OneC_988]的[pre lang =c#> cmd.CommandText = cmd + 。[dbo]。[988_Details_VehicleRequest ]请求;
cmd.CommandText = cmd + 加入[OneC_988]。[dbo]。[988_Details_VehicleTrip]行程
当第二个字符串连接到第一个字符串时,你得到requestjoin
因为你忘了在请求
之后放一个空格。
每次字符串不以逗号结尾时你都会得到相同的结果。
string connectionString = ConfigurationManager.ConnectionStrings["OneTransportConnectionString"].ConnectionString;
SqlConnection sqlConnection = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand();
SqlDataReader reader;
cmd.CommandText = "select DISTINCT date_TripDate AS TripDate,traveltype.varchar_TravelTypeCode AS TripType,contactss.Value as Mobilenumber time_TripTime AS ShiftTime,trip.int_VehicleTripID as RequestID,";
cmd.CommandText = cmd +"varchar_TravelerID AS AssociateID,(Associate_FirstName + Associate_LastName) AS AssociateName, Gender AS Gender,varchar_ProjectId AS ProjectID,varchar_ProjectName AS ProjectName,";
cmd.CommandText = cmd +"city.varchar_CityName AS City,placeee.varchar_PlaceName AS SourceArea,place.varchar_PlaceName AS DestinationArea,varchar_StatusDescription As Status,reason.varchar_ReasonDescription AS AppType,";
cmd.CommandText = cmd +"from [OneC_988].[dbo].[988_Details_VehicleRequest] request";
cmd.CommandText = cmd +"join [OneC_988].[dbo].[988_Details_VehicleTrip] trip on request.int_VehicleRequestID=trip.int_VehicleRequestID";
cmd.CommandText = cmd + "and int_CityID ='8'";
cmd.CommandText = cmd +"join [OneC_988].[dbo].[988_Details_TripSheet] sheet on trip.int_VehicleTripID=sheet.int_VehicleTripID";
cmd.CommandText = cmd +"join [CentralRepository].[dbo].[vw_CentralRepository_Associate_Details] AD on trip.varchar_TravelerID=AD.Associate_ID";
cmd.CommandText = cmd +"left join [CentralRepository].[dbo].[vw_CentralRepository_Contacts] contactss on contactss.Associate_ID = trip.varchar_TravelerID and contactss.Contact_Type='MBL1'";
cmd.CommandText = cmd +"join [OneC_988].[dbo].[988_Master_Place] place on place.int_PlaceID=trip.int_TripDestinationID";
cmd.CommandText = cmd +"join [OneC_988].[dbo].[988_Master_Place] placeee on placeee.int_PlaceID=trip.int_TripSourceID";
cmd.CommandText = cmd +"join [988_Master_City] city on request.int_CityID=city.int_CityID";
cmd.CommandText = cmd +"join [OneC_988].[dbo].[988_Master_TravelType] traveltype on traveltype.int_TravelTypeID=trip.int_TravelTypeID";
cmd.CommandText = cmd +"join [OneC_988].[dbo].[988_Master_Reason] reason on reason.int_ReasonID=request.int_ReasonID";
cmd.CommandText = cmd +"join [OneC_988].[dbo].[988_Master_Status] status on status.int_StatusID=trip.int_TripStatusID";
cmd.CommandText = cmd + "where date_TripDate ='2016-08-24' and trip.int_TripStatusID not in (0)";
cmd.CommandType = CommandType.Text;
cmd.Connection = sqlConnection;
sqlConnection.Open();
reader = cmd.ExecuteReader();
Console.WriteLine("test");
sqlConnection.Close();
when i run the above shows error as follows
Incorrect syntax near '='.
The above error shows in below line as follows
reader = cmd.ExecuteReader();
please help me what is the mistake in my above query
What I have tried:
when i run the code shows error as follows
Incorrect syntax near '='.
As mentioned in comments, this is a very simple issue to fix on your own. Run the code and see what is in cmd.CommandText after you are done. Then you can even copy that sql into Sql Management Studio into a new query window and find the syntax error very quickly.
I would also suggest you change this into a Stored Procedure and then just call the Stored Procedure. It is a much cleaner way of doing things and you also avoid this particular issue of trying to build up the string like this.
Try using
cmd.CommandText += "some more SQL statements";
than
cmd.CommandText = cmd + "some more SQL statements";
You must also prefix additional statements with a space when appending them. You would have recognised this when printing outcmd.CommandText
for inspection.
Here is a bug
cmd.CommandText = cmd +"from [OneC_988].[dbo].[988_Details_VehicleRequest] request"; cmd.CommandText = cmd +"join [OneC_988].[dbo].[988_Details_VehicleTrip] trip on
When the second string is concatenated to the first one, you getrequestjoin
because you forgot to put a space afterrequest
.
and you got the same every time a string do not end with a comma.
这篇关于当我运行代码显示错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!